2013-08-22 55 views
0

我特林與AJAX發送和接收參數沒有任何sucess發送和收到的參數使用Ajax使用jQuery

首先我選擇地區,比在這方面的城市。

你能告訴我我做錯了什麼?

客戶端:

<script> 
$(document).ready(function(){ 

    $("#first").click( 

    function(){ 

     var area_id=$("#area_id").val(); 

     $.ajax({ 
     type: "POST", 
     url: "recs.php", 
     data: "area_id="+area_id, 
     cache:false, 
     success: 
      function(data){ 
      $("#second").html(data.message); 
      } 

     }); 

     return false; 

    }); 


}); 


</script> 


<form method="post" action="tosomewhere.php"> 

    <select id="first" name="area_id"> 
     <option value="1">1</option> 
     <option value="2">2</option> 
    </select> 

    <select id="second" name="section"> </select> 

</form> 

服務器端:

$areaID = $_POST['area_id']; 
$second_option = ""; 

$query2 = mysql_query("SELECT * FROM `cities` WHERE area_id = $areaID ORDER BY id ASC"); 
while($index = mysql_fetch_array($query2)) 
{ 
    $id = $index['id']; 
    $name = $index['name']; 

    $second_option .= "<option value='$id'>$name</option>"; 
} 

echo $second_option; 
exit; 

謝謝你在先進

編輯完成後:

我改變了代碼的東西更簡單:

客戶端:

<script> 
$(document).ready(function(){ 
    $("#first").click( 
    function(){ 
     var area_id=$("#area_id").val(); 

     $.ajax({ 
     type: "GET", 
     url: "recs.php", 
     data: "area_id="+area_id, 
     cache:false, 
     success: 
      function(data){ 
      $("#second").html(data); 

      } 

     }); 

     return false; 

    }); 


}); 


</script> 

<form method="post" action="tosomewhere.php"> 

    <select id="first" name="area_id"> 
     <option value="1">1</option> 
     <option value="2">2</option> 
    </select> 

    <div id="second"></div> 

</form> 

服務器端:

some text 

我仍然沒有得到串入

+0

有什麼不對?檢索您的控制檯中的一些錯誤? –

+0

我發現這個不錯的tuto,所以我與你分享http://www.w3schools.com/php/php_ajax_database.asp –

+0

你是什麼意思「沒有成功」?你的代碼運行時會發生什麼? –

回答

3

變化

$("#second").html(data.message); 

$("#second").html(data); 
+0

謝謝,但仍然無法正常工作。 第二個SELECTBOX沒有驗證數據... – Roi

+0

那麼你的錯誤是在別的地方... – slash197

+0

我還沒有得到服務器端的迴應。 我試圖鍵入簡單的字符串,而不是SQL查詢,它仍然不會發送到客戶端... – Roi

0

您需要調試代碼,其中實際上無論您的ajax調用是否實際初始化都是錯誤的。

我:檢查值是否正常獲取的「AREA_ID」 JS變量

alert(area_id); 

二:如果它是確定檢查數據是否正確,從服務器scriptinog

alert(data); or alert(data.message); 

三回:測試你是否正確接收數據,只是發送測試腳本。

echo "sample text"; 
exit; 

或嘗試JSON格式

die('{"message" : "sample text"}'); 

發送數據,如果這三個步驟的工作,那麼就應該在數據訪問腳本錯誤。

如果您沒有在ajax中獲得輸出,請嘗試使用firebug來檢查發送請求和獲取響應的實際情況。

+0

請再次檢查我的第一篇文章。 我編輯它並添加新的簡單代碼(編輯後:) – Roi

+0

使用firebug來跟蹤ajax調用初始化時實際發生的情況。 – irfanmcsd

+0

也許我沒有建立ajax腳本吧? – Roi

0
<script> 
$(document).ready(function(){ 
    $("#first").click(function(){ 
     var area_id=$("#area_id").val(); 
     $("#second").load('tosomewhere.php?area_id=' + area_id); 
     return false; 
    }); 
}); 
</script> 

更改了jQuery的一點。使用GET。

而且劇本已經改變:

$areaID = (int) $_GET['area_id']; 
$second_option = ""; 

$query2 = mysql_query("SELECT * FROM `cities` WHERE area_id = '$areaID' ORDER BY id ASC"); 
if (mysql_num_rows($query2) > 0){  
    while($index = mysql_fetch_array($query2)){ 
     $second_option .= '<option value="'.$index['id'].'">'.$index['name'].'</option>'; 
    } 
    echo $second_option; 
} else { 
    echo 'No result!'; 
} 

die(); 

增加(INT)$ _GET之前作爲安全預測。

+0

我還沒有從服務器端得到迴應。 我試圖鍵入簡單的字符串,而不是SQL查詢,它仍然不會發送到客戶端... – Roi

+0

確保tosomewhere.php?area_id指向相同的目錄。嘗試首先將完整路徑添加到腳本中。然後在瀏覽器中試試這個字符串: tbodywhere.php?area_id = 5 您應該得到回覆。如果你沒有,那麼你的PHP腳本中有什麼錯誤 –

+0

嘗試新的serverscript,它會回顯一些東西,即使你的查詢有問題 –

0

這個參數添加到AJAX功能

dataType:'text' 
+0

完成,但仍然沒有得到字符串形式的PHP文件(服務器端) – Roi

相關問題