我正在尝试将select
框option
中的数据插入到我的数据库表中。我的数据库表字段为id_country
和country_name
。
数据库字段id_country
由select
option
值填充,country_name
来自相应的option
文本。
代码是这样的..
<select id="id_country" name="id_country">
<option value="17" >USA</option>
<option value="16" >Canada</option>
<option value="7" >France</option>
</select>
<script>
$(document).ready(function(){
var data=new Array();
$('#id_country').find('option').each(function() {
var id=$(this).val();
data[id]=$(this).text();
});
$('#btn_insert').click(function(){
$.ajax({
type: "POST",
url: "ajax.php",
data: data,
success: function(response){
alert(response);
}
});
});
});
</script>
服务器端脚本:
<?php
//echo $_POST['data'];
$arr=$_POST['data'];
foreach($arr as $key => $value){
$sql="INSERT INTO Country($key,$value)";
$query=mysql_query($sql);
if(mysql_num_rows($query)>0){
echo "success";
}
}
?>
我无法获得$_post['data']
价值。如何在PHP脚本中获取Javascript数组?
答案 0 :(得分:2)
尝试如下:
首先序列化你的数组,然后传递给jquery ajax函数。
data.serializeArray();
在PHP脚本中,在文件的开头,
$arr = json_decode($_POST['data'], true);
答案 1 :(得分:1)
当您想使用$_POST['data']
改变这个:
data:data,
到
data:{'data':data}
如果只想发布所选选项的数据,则必须在click-handler中构建数据对象,如下所示:
var data={'id_country':$('option:selected','#id_country').val(),
'country_name':$('option:selected','#id_country').text()};