我正在尝试使用$ _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'];
答案 0 :(得分:1)
您最好在字典上运行 JSON.stringify(),然后在PHP中使用 JSON_decode()来检索数组。
答案 1 :(得分:1)
all
应该是对象,而不是数组:
var all = {};
jQuery在将它传递给$.post
时会为你做必要的转义,但它不会读取数组的对象属性。
然而as Joy stated,你只是试图在这里模仿一个表格。确保输入全部包含在单个表单中,并使用.serialize()
获取可以与HTTP请求一起发送的字符串。
答案 2 :(得分:0)
很抱歉,如果我不太了解,但为什么你不使用这样的html属性?
<input type="text" name="all[nameOfText]" />
<input type="text" name="all[nameOfText2]" />
<input type="radio" name="all[nameOfRadio]" />
...