2013-06-26 44 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); 
    }); 

});