2014-07-16 18 views
0

我正在使用jQuery Ajax將參數發送到PHP腳本。下面是Jquery的AJAX腳本PHP腳本中未定義Jquery ajax參數

jQuery 
<script> 
$(document).ready(function() { 
    $("#builder_group").change(function() { 
     var selected_builder = $(this).val(); 
     alert(selected_builder); 
     $.ajax({ 
      type: 'POST', 
      url: 'getGroupzCode.php', 
      data: 'selected_builder', 
      datatype: 'json', 
      success: function (data) { 
       // Call this function on success     
       console.log(data); 
       var yourArray = JSON.parse(data); 
       console.log(yourArray); 
       $.each(yourArray, function (index, yourArray) { 
        $('#builder_group1').append($('<option/>', { 
         value: yourArray.id, 
         text: yourArray.name, 
        })); 
       }); 
      }, 
      error: function() { 
       displayDialogBox('Error', err.toString()); 
      } 
     }); 
    }); 
}); 
</script> 

當我在Firebug控制檯中看到我看到通過parametr是正確的,因爲選擇,但是在PHP腳本中,我看到未定義指數

PHP 
    $builder_id=$_POST['selected_builder']; 
    error_log($builder_id); 
+0

你發送數據類型爲json,所以PHP希望從數據中讀取json,這只是文本。相應地改變。將數據類型更改爲文本或將數據更改爲json對象 –

回答

3
data: 'selected_builder', 

這是不適當的格式。你需要:

data: { selected_builder: selected_builder } 

下面的表示你收到一個json,是否正確?如果是這樣的參數是「數據類型」如下。

dataType: 'json', 

如果是你,你會使用這個在你的PHP文件:

$encoded = json_encode($yourvariable); 
echo $encoded; 

現在,如果不是這種情況下,您會通過調用變量在PHP中:

$variable = $_POST["selected_builder"]; 
+0

但是可以每次刷新下拉列表 – Rudra

+0

我看到謝謝@Rudra! –