2013-10-14 55 views
0

我試圖從一個html文件傳遞一個變量,使用jquery和ajax到一個php文件,我想要處理它。我有兩個測試文件:未定義的索引,當從jquery傳遞變量到php

ajax.html

<html> 
<head> 
    <title>ajax</title> 
    <script type="text/javascript" src="jquery.js"></script> 
    <link href="ajax.css" rel="stylesheet" type="text/css" /> 
    <script type="text/javascript"> 
    $(document).ready(function() { 
     $("#call_back").click(function() { 
     $.post(
      "ajax.php", { 
      value: $("#input_text").val() 
      }, 
      function (data) { 
      $("#response_text").val(data); 
      } 
     ); 
     }); 
    }); 
    </script> 
</head> 

<body> 
    <div id="wrapper"> 
    <h3>Ajax</h3> 
    <div class="entry-wrapper"> 
     <h4>Data to send to the server</h4> 
     <input type="text" size="50" id="input_text" /> 
     <input type="button" value="Ajax Callback" id="call_back" /> 
    </div> 

    <div id="response_wrapper"> 
     <textarea id="response_text"></textarea> 
    </div> 
    </div> 
</body> 
</html> 

和ajax.php

<?php 
    $value = $_POST['value']; 
    echo "Returned from the server: $value";  
?> 

的HTML工作正常。如果我在文本字段中輸入一個值,它會傳遞給php文件,處理併發送回textarea中顯示。 我查看過firebug,控制檯中的帖子標籤顯示了我輸入的值。

問題是我想能夠在php文件中使用該變量,用於算術運算或者用它運行sql查詢,但是當我打開php文件時,它顯示爲未定義索引。

我已經通過多個線程查看從jquery到php傳遞變量,但仍然沒有找到答案。我不知道問題是什麼。建議非常感謝。謝謝。

+0

use var_dump($ _ POST);檢查POST是否正常工作 – Marcos

+0

好吧,如果您可以將信息傳遞迴客戶端,那麼您的AJAX似乎工作正常。 PHP中的問題在哪裏? – tymeJV

+0

我使用var_dump($ _ POST),它返回數組(大小= 0)空和SCREAM:錯誤抑制被忽略爲 – Wray

回答

0

如果我正確理解你的問題,你需要在你的url中定義變量。 例子:

http://yoursite.com/ajax.php?value=yourdata 

,當你打開你的定義是所有你與你的Ajax請求做價值的文件這樣。如果這不是你想要完成的,試着重新提出你的問題。

1日的評論後的修訂:

<?php 
    if(isset($_POST['value'])){ 
     //do whatever in here 
     dowhatever(); 
    } 

    function dowhatever() { 
     $value = $_POST['value']; 
     echo "Returned from the server: $value"; 
     if(value == 'data') { 
      //run query 
     }//end if 
    }  
?> 
+0

是的,這將是一種將變量傳遞給php的方式。但是,我應該提到,當事件觸發時,我需要傳遞變量。例如,我有多個div,當我點擊一個div時,我想傳遞被點擊div的id或類或名稱,然後在php中處理它,例如將其存儲在數據庫中,或者從數據庫中檢索某些內容連接到該div。 – Wray

+0

一旦你從你的php中的url中獲取數據,你應該可以對數據做任何事情。您可以檢查該屬性是否在url中設置,或者是否設置爲特定值並運行一個函數。在你的函數中,你可以查詢你的數據庫或任何你想要的。 – mcphersonjr

+0

一旦你發送數據到php文件,它不會自動存儲它以供你稍後使用,你需要將它存儲在數據庫中。要重複使用相同的值,您可以在您的JS文件上創建一個全局變量,並將其設置爲您的值,並且每次在PHP中需要時,只需在您的ajax中再次發送它。 – mcphersonjr

0

我認爲,當你說你能確認它的工作,但是當你直接打開PHP文件,它是未定義索引,那麼我會說,熟能生巧感。如果您直接瀏覽.php文件,則不會發送POST數據。但是,如果你能夠輸入一些文本,啓動提交,並按計劃返回文本,那麼它正在工作。

+0

我還記得另一種情況,Wray也可能意味着爲什麼他不能在html頁面上使用$ value後返回))) – Max

+0

對。但是,我怎樣才能在php文件中訪問這個變量並對其進行操作 – Wray

+0

現在你正在訪問這個變量。 $ value = $ _POST ['value']; 那麼,當你提交它時,它的工作原理是否正確?您發送文本到.php並按計劃返回文本?如果是這樣,那麼你正在'操縱'這個變量。 但正如馬克斯所說,如果你想在頁面上使用它,你將不得不做一些JavaScript的巫術。 – T0w3ntuM