我有问题发送jquery数组到PHP?首先,我在html中有1个表单,然后我点击添加,我现在有2个表单。接下来,我将表单中的数据输入到jquery数组,然后从jquery数组中我不能发布到php数组变量。如何解决这个问题呢?请帮我掌握,谢谢
<?php
$pertama = json_decode($_POST['pertama']); //can not work
$kedua = json_decode($_POST['kedua']);
foreach($pertama as $k=>$val)
{
$date = $val;
$work =$kedua[$k];
}
echo $pertama;
?>
<!doctype html>
<html>
<head>
<title> test </title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
</head>
<body>
<div>
<div>
<form>
<div class="inputs">
<div>
<a href="#" id="add">Add</a> | <a href="#" id="remove">Remove</a>
<input type="text" name="nama[]" class="pertama"/></div>
<input type="text" name="lahir[]" class="kedua"/></div>
</div>
<input name="submit" type="button" class="submit" value="Submit" />
</form>
</div>
</div>
<div class="field_wrapper">
</div>
<script type="text/javascript">
$(document).ready(function(){
var i = $('input').size();
$('#add').click(function() {
$('<div><input type="text" class="pertama" name="nama[]" required/><input type="text" class="kedua" name="lahir[]" /></div>').fadeIn('slow').appendTo('.inputs');
i++;
});
$('#remove').click(function() {
if(i > 0) {
$('.pertama:last,.kedua:last').remove();
i--;
}
});
$('#reset').click(function() {
while(i > 2) {
$('.pertama:last,.kedua:last').remove();
i--;
}
});
// here's our click function for when the forms submitted
$('.submit').click(function(){
var arraysatu = [];
var arraydua = [];
$.each($('.pertama'), function() {
arraysatu.push($(this).val());
});
$.each($('.kedua'), function() {
arraydua.push($(this).val());
});
$.post('test2.php', { arraysatu: JSON.stringify(arraysatu), arraydua: JSON.stringify(arraydua), function(data) {
alert(data);
});
});
});
</script>
</body>
</html>
答案 0 :(得分:1)
您忘记在post
方法中关闭括号,我假设最后一个功能是您的回调,之前的所有内容都是您的数据。
<?php
$pertama = json_decode($_POST['pertama']); //can not work
$kedua = json_decode($_POST['kedua']);
foreach($pertama as $k=>$val)
{
$date = $val;
$work =$kedua[$k];
}
echo $pertama;
?>
<!doctype html>
<html>
<head>
<title> test </title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
</head>
<body>
<div>
<div>
<form>
<div class="inputs">
<div>
<a href="#" id="add">Add</a> | <a href="#" id="remove">Remove</a>
<input type="text" name="nama[]" class="pertama"/></div>
<input type="text" name="lahir[]" class="kedua"/></div>
</div>
<input name="submit" type="button" class="submit" value="Submit" />
</form>
</div>
</div>
<div class="field_wrapper">
</div>
<script type="text/javascript">
$(document).ready(function(){
var i = $('input').size();
$('#add').click(function() {
$('<div><input type="text" class="pertama" name="nama[]" required/><input type="text" class="kedua" name="lahir[]" /></div>').fadeIn('slow').appendTo('.inputs');
i++;
});
$('#remove').click(function() {
if(i > 0) {
$('.pertama:last,.kedua:last').remove();
i--;
}
});
$('#reset').click(function() {
while(i > 2) {
$('.pertama:last,.kedua:last').remove();
i--;
}
});
// here's our click function for when the forms submitted
$('.submit').click(function(){
var arraysatu = [];
var arraydua = [];
$.each($('.pertama'), function() {
arraysatu.push($(this).val());
});
$.each($('.kedua'), function() {
arraydua.push($(this).val());
});
$.post('test2.php', { arraysatu: JSON.stringify(arraysatu), arraydua: JSON.stringify(arraydua)}, function(data) {
alert(data);
});
});
});
</script>
</body>
</html>
&#13;
答案 1 :(得分:0)
关闭括号:
{ arraysatu: JSON.stringify(arraysatu), arraydua: JSON.stringify(arraydua) } <====
答案 2 :(得分:-2)
发现差异:
$pertama = json_decode($_POST['pertama']); //can not work
^^^^^^^
$kedua = json_decode($_POST['kedua']);
^^^^^
$.post('test2.php', { arraysatu: JSON.stringify(arraysatu), arraydua: JSON.stringify(arraydua), function(data) {
^^^^^^^^ ^^^^^^^^
注意名称差异。
答案 3 :(得分:-2)
在$.post的示例部分中,您可以看到如何将数组发送到服务器。你尝试过:
$.post('test2.php',
{"arraysatu[]": arraysatu,
"arraydua[]": arraydua},
function(data) {
alert(data);
});