0

$_POST を使用して配列をphpファイルに送信しようとしていますが、常に未定義の変数を取得しています!!

var all = [];
var textInput = $('input[type=text]');
var checkBox = $('input[type=checkbox]');
var radio = $('input[type=radio]');
textInput.each(function () {
    if ($(this).val() != "") {
        name = $(this).attr('name');
        value = $(this).attr('value');
        all[name] = value;
    }
});
checkBox.each(function () {
    if ($(this).attr("checked")) {
        name = $(this).attr('name');
        value = $(this).attr('value');
        all[name] = value;
    }
});
radio.each(function () {
    if ($(this).attr("checked")) {
        name = $(this).attr('name');
        value = $(this).attr('value');
        all[name] = value;
    }
});
var getSelect = $('#experince');
if (getSelect[0].selectedIndex != 0) {
    name = getSelect[0].name;
    value = getSelect[0].selectedIndex;
    all[name] = value;
}
$.post('test.php', all, function (data) {
    alert(data);
    $.each(data, function (key, value) {
        alert(value);
    });
}, 'json');

PHPファイル

    if(!isset($_POST['workF'])){
    $_POST['workF'] ="undefine";
}

if(!isset($_POST['workP'])){
    $_POST['workP']="undefine";

}

if(!isset($_POST['gender'])){
    $_POST['gender']="undefine";
}

if(!isset($_POST['experince'])){
    $_POST['experince']="undefine";
}

if (!isset($_POST['jobs'])){
    $_POST['jobs']="undefine";
}

if(!isset($_POST['location'])){
    $_POST['location']="undefine";

}

$work_type_f = $_POST['workF'];
$work_type_p = $_POST['workP'];
$gender = $_POST['gender'];
$experince = $_POST['experince'];
$jobs = $_POST['jobs'];
$location =$_POST['location'];

ここに画像の説明を入力

4

3 に答える 3

1

辞書でJSON.stringify()を実行してから、PHP でJSON_decode()を使用して配列を取得することをお勧めします。

于 2012-06-26T11:53:22.390 に答える
1

all配列ではなくobjectである必要があります:

var all = {};

jQuery は に渡すときに必要なエスケープを行います$.postが、配列のオブジェクト プロパティは読み取りません。

ただし、ジョイが述べたように、ここではフォームを模倣しようとしています。入力がすべて単一のフォーム内に含まれていることを確認.serialize()し、HTTP 要求とともに送信できる文字列を取得するために使用します。

于 2012-06-26T11:55:27.780 に答える
0

よくわからなかったらすみませんが、なぜこのように html 属性を使わないのですか?

<input type="text" name="all[nameOfText]" />
<input type="text" name="all[nameOfText2]" />

<input type="radio" name="all[nameOfRadio]" />
...
于 2012-06-26T11:56:05.247 に答える