2013-06-26 45 views
2

我有一个html表单。当我提交表单时,它设法调用一个函数。我想在HTML页面中显示结果。画面是这样的: 的HTML表单提交php函数返回值在html中打印

<form method="post" action="" enctype="multipart/form-data" name="uploadForm"> 
<input name="test" /> 
<input type="submit" name="submit" /> 
</form> 

<div id="data"><?php echo $result; ?></div> 

PHP类

<?php 
class Test{ 

    public function __construct(){ 
     if(isset($_POST['submit'])){ 
      $result = $this->myfunction(); 
     } 
    } 
     private function myfunction(){ 
     //some actions 
     return "values"; 
     } 
} 

我在这里只给想法。类文件是不同的PHP文件,所以HTML是。该类的实例被创建。如何在提交表单后在div id =“data”中显示结果“值”?

+3

如果你不想重新载入页面,你需要阅读有关AJAX的内容。 – LMeyer

+0

使用** AJAX **。 – Vucko

+0

使用'print_r($ _ POST)'显示结果;'如果你不想按照上面的建议重新加载页面** AJAX **。 – Robert

回答

1

虽然你的做法似乎有点不可思议,这里的应该是工作的一个版本:

您的HTML文件:

<?php /* Includes here */ ?> 
<?php $result = new Test($_POST)->getResult(); ?> 
<form method="post" action="" enctype="multipart/form-data" name="uploadForm"> 
<input name="test" /> 
<input type="submit" name="submit" /> 
</form> 

<div id="data"><?php echo $result; ?></div> 

你的PHP类:

<?php 
    class Test{ 

     private $result = ''; 

     public function __construct($postData){ 
      if(isset($data['submit'])){ 
       $this->result = $this->myfunction(); 
      } 
     } 

     private function myfunction($postData){ 
      //some actions 
      return "values"; 
     } 

     public function getResult() { 
      return $this->result; 
     } 
    } 
} 
0

你必须包括文件或代码

<?php 
    class Test{ 
    public $result; 
    public function __construct(){ 
     if(isset($_POST['submit'])){ 
      $this->result=$this->myfunction(); 
     } 
    } 
     private function myfunction(){ 
     //some actions 
     return "values"; 
     } 
} 

if(isset($_POST)){ 
$test = new Test(); 
$result=$test->result; 
} 
?> 
<form method="post" action="" enctype="multipart/form-data" name="uploadForm"> 
<input name="test" /> 
<input type="submit" name="submit" /> 
</form> 

<div id="data"><?php echo $result; ?></div> 
+0

附注:Afaik,$ _POST将会被设置,所以你不需要做'isset($ _ POST)'。 :-) – ninetwozero

1

为了实现所需的代码,您需要使用AJAX。

在您的JS文件,你需要添加

$('#form type=[submit]').click(function(e){ 
    e.preventDefault();//prevents default form submit. 
    $.ajax({ //fetches data from file and inserts it in <div id="data"></div> 
    url:'your url here', 
    data:{data:$(#form).serialize()}, 
    success :function(data){ 
$('#data').html(data); 
    } 
    }); 
}); 
3

使用AJAX,我们可以如下显示的结果在那个特定的DIV:

$('#submitBtn').click(function(){ 
    $.post("YourFile.php",{$('#form').serialize()},function(res){ 
     $('#data').html(res); 
    }); 

});