1

我正在尝试将我的selectbox 中option的数据插入到我的数据库表中。我的数据库表字段是id_countrycountry_name

数据库字段由值id_country填充,并且来自相应的文本。代码是这样的..select optioncountry_nameoption

<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 数组?

4

2 回答 2

2

尝试如下:

首先序列化您的数组,然后传递给 jquery ajax 函数。

data.serializeArray();

在 PHP 脚本中,在文件的开头,

$arr = json_decode($_POST['data'], true);
于 2012-09-16T09:01:16.243 回答
1

当您想要使用获取所有发送的数据时,数据对象内必须有一个数据成员$_POST['data']

改变这个:

data:data,

进入

data:{'data':data}

当您只想发布所选选项的数据时,您必须在点击处理程序中构建数据对象,如下所示:

var data={'id_country':$('option:selected','#id_country').val(),
          'country_name':$('option:selected','#id_country').text()};
于 2012-09-16T09:01:31.143 回答