我很难用AJAX将关联数组发送到php文件。有些事我不清楚。这是我从一种输入标签形式制作数组的代码,但我不知道如何发送它并在php中解释它。
<script type="text/javascript">
$(document).ready(function(){
$(':submit').on('click', function() { // This event fires when a button is clicked
var theData = {};
$(":input:not(:button)").each(
function(index){
var input = $(this);
theData[input.attr('name')] = input.val();
}
);
$.ajax({ // ajax call starts
url: "http://www.aberlechiropractic.com/meningealrelease/modifydoctors/modifydoctors3.php",
data: theData,
dataType: 'json',
success: function(data)
{
$('#wines').html(''); // Clear #wines div
$('#wines').append('Data Received: ' + data.name+' '+data.address + '<br/>');
}
});
return false; // keeps the page from not refreshing
});
});
</script>
<body>
<form>
<input type="text" name="name" id="name" value="Jeff Aberle"/>
<input type="text" name="address1" id="address1" value="4710 East Broadway"/>
<button type="submit" name="updatedoctor" id="updatedoctor" value="all">All</button>
</form>
</body>
这是我的PHP代码:
<?php
$name = $_GET['name'];
$address1 = $_GET['address1'];
$array = array($button, $address1);
print json_encode($array);
?>
啊现在一切正常。我在这里编辑了所有代码,以便完成这项工作。
<?php
// Get value of clicked button
$name = $_GET['name'];
$address1 = $_GET['address1'];
$array = array(
"name" => $name,
"address" => $address1,
);
print json_encode($array);
?>
我还有一个id = wine的div。这是我忘了展示的另一件事。这就是数据返回并显示没有名称的地方。
答案 0 :(得分:1)
收集值的jQuery代码是正确的,尽管.serialize()
会简化它。
要在PHP中检索值,它与正常提交表单的方式相同。他们在$_GET['name']
和$_GET['address1']
。 theData
只是包含该对象的Javascript变量的名称,它不是发送给PHP的属性名称。
答案 1 :(得分:0)
抱歉,我在手机上,所以答案很简短,但请使用序列化
http://api.jquery.com/serialize/
实施例
$('form').on('submit', function(){
$data = $(this).serialize();
//send via ajax
return false;
})
答案 2 :(得分:0)
发送数据:我假设您要发送表单的结果?为此,首先您需要向页面添加提交按钮。这应放在您的表单中以提交代码。
其次,看起来你错过了你在AJAX成功响应中引用的<div id="wine">
,所以你想要添加它。
答案 3 :(得分:0)
尝试此操作,您必须在表单中添加按钮以触发操作:
<script type="text/javascript">
$(document).ready(function(){
$('#submit').live('click', function() {
var theData = {};
$(":input:not(:button)").each(
function(index){
var input = $(this);
theData[input.attr('name')] = input.val();
}
);
$.ajax({
url: "http://www.aberlechiropractic.com/modifydoctors3.php",
data: theData,
dataType: 'json',
success: function(data)
{
$('#wines').html(''); // Clear #wines div
$('#wines').append('Data Received: ' + data + '<br/>');
}
});
return false; // keeps the page from not refreshing
});
});
</script>
<body>
<form>
<input type="text" name="name" id="name" value="Jeff Aberle"/>
<input type="text" name="address1" id="address1" value="4710 East Broadway"/>
<input type="button" id="submit" value ="send"/>
</form>
</body>
<?php
$button = $_GET['theData'];
$array = array($button.name, $button.address1, $button.state);
print json_encode($array);
?>