1

selectbox optionsからデータベース テーブルにデータを挿入しようとしています。私のデータベース テーブル フィールドはid_countrycountry_nameです。

データベース フィールドid_countryselect 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配列を取得するにはどうすればよいですか?

4

2 に答える 2

2

以下のようにしてみてください:

最初に配列をシリアル化し、次にjqueryajax関数に渡します。

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 に答える