0

フォーム入力を配列としてphpスクリプトに送信しようとしています

function submit_form(){
    var arr  =  [];
    var key, val ;
    $('#form input').each(function(){

        key = $(this).attr('id');
        val = $(this).val();
        arr[key] = val;

    })
    alert(arr['username']); // check to see if array is not empty

    var jsondata =  JSON.stringify(arr); 

    $.post(base_url+'profile/edit_profile/<?php echo $profile_username; ?>' , {data : jsondata }, function(){
    })
}

phpスクリプトで

$data =  json_decode($_post['data']);
var_dump($data);
exit;

これが結果です

array (size=0)
  empty
4

2 に答える 2

3

オブジェクトを使用する必要があるときに配列を使用しています。

var obj = {};
var key, val ;
$('#form input').each(function(){

    key = $(this).attr('id');
    val = $(this).val();
    obj[key] = val;

});

JSONメソッドは、配列の非数値プロパティを無視します。


id属性を使用する代わりに、を使用してnameから、を使用します.serialize()

var data = $('#form input').serialize();
于 2012-07-21T19:11:23.043 に答える
0

これには、最初に基本的なデバッグが必要です。データをデコードする前に、データが正しいことを確認するためにデータをダンプします。

$data =  $this->input->post('data');
var_dump($data);
$array = json_decode($data);
var_dump($array);
exit;

学ぶべき教訓:

  • 次々にステップを実行します。愚かであるほど良い。
  • 各ステップの前後に、データを確認します。
于 2012-07-21T19:12:45.587 に答える