2013-05-19 33 views
2

我有一個從數據庫返回一組數據的類。該類由ajax調用,並且結果需要返回到index.php,以便我可以格式化並以表格格式顯示結果。將PHP類的結果傳遞給AJAX並返回調用腳本

問題:我無法通過ajax返回結果並返回到php變量。 任何幫助,您可以提供將不勝感激。

<php 
class Questions 
{ public function displayQuestions() 
    { 
    return $this->questionArray; 
    } // contains set of data from db 
} 
?> 

返回從類的數據集,並把它傳遞給$var,這樣我可以用於顯示

index.php格式化數據:

<html> 
<body> 
<div id="questiondev" ><?php $var[] = returned by ajax ?> </div> 



<div id="questionButton"> 
    <form method="POST" name="form_questions" action=""> 
     <TEXTAREA NAME="saveqa" id="saveqa"></TEXTAREA> 
     <BUTTON class="btn_save" id ="btn_save" NAME="btn_save">Ask</BUTTON> 
    </form> 
</div> 
    <script src="http://code.jquery.com/jquery-latest.js"></script> 
     <script>   
      $(document).ready(function() { 
      $('#btn_save').on('click', function() { 
      $.ajax({ 
      type: "POST", 
      cache: false, 
      url: "testData.php", 
      dataType: "json", 
      success:function(info){ 
      $('#questiondev').html(info[0]); 
      console.log(" reponse :"+ info); 
      } 
     }); 
     }); 

     $('#btn_save').trigger("click"); 
     });     
     </script> 
</body> 
</html> 
+0

你沒有把數據設置爲ajax – underscore

+0

你不能把ajax返回到PHP變量。 PHP是服務器端,因爲你的頁面已經被渲染,所以你不能更新它的任何服務器端代碼。你的標記行3將永遠不會工作。你所能做的就是更新一個JavaScript變量,並將其傳遞給你的HTML/DOM。 – technoTarek

+0

爲什麼不只是在你的PHP文件中進行格式化,回顯它,然後使用ajax回調函數來更新你的div?在發送響應之前,通過php處理該數組會更容易。 –

回答

0

添加

data:$("form").serialize(),ù需要序列化表格

<div id="questionButton"> 
    <form method="POST" name="form_questions" action=""> 
     <TEXTAREA NAME="saveqa" id="saveqa"></TEXTAREA> 
     <BUTTON class="btn_save" id ="btn_save" NAME="btn_save">Ask</BUTTON> 
    </form> 
</div> 
    <script src="http://code.jquery.com/jquery-latest.js"></script> 
     <script>   
      $(document).ready(function() { 
      $('#btn_save').on('click', function() { 
      $.ajax({ 
      type: "POST", 
      cache: false, 
      url: "testData.php", 
      data:$("form").serialize(), 
      dataType: "json", 
      success:function(info){ 
      $('#questiondev').html(info[0]); 
      console.log(" reponse :"+ info); 
      } 
     }); 
     }); 

     $('#btn_save').trigger("click"); 
     });     
     </script> 
</body> 
</html> 
+0

你好,謝謝你的幫助,但我仍然有問題。由於某種原因,腳本似乎處於循環中。 testData.php可以自行工作,但同時數據不會傳過來。 – user1448039

0

它看起來並不像你呼應JSON格式的結果。看起來如果你的查詢成功了,$ questionArray被設置,但是沒有被回顯。另外,您不能僅僅echo $ questionArray - 它必須以json格式輸出,Ajax代碼才能接受它。

試試這個 - $ questionArray設置後:

$encodedJSON = json_encode($questionArray); 
echo $encodedJSON; 
0

不能插入AJAX請求的結果到這樣的PHP變量。當你運行php頁面的web服務器時會顯示它,然後javascript被瀏覽器運行,這意味着你不能從javascript中編輯PHP變量,因爲PHP運行在服務器上,而JS運行在客戶端上。

你爲什麼要這樣做?也許這是應用程序設計中的缺陷,提供更多信息,也許我們可以幫助您更多,因此您不需要這樣做。如果你想格式化數據,然後格式化它們,然後再將它們發送回AJAX :)

相關問題