我正在尝试使用j查询$ .ajax方法向我的PHP脚本发送多个数据,但是当我连接多个数据时我只能传递单个数据我在我的php脚本中得到未定义的索引错误意味着发出了ajax请求但数据不是发送我需要知道我应该如何格式化多个数据,以便连续发送到处理脚本名称值对这里是我写的
<script>
$(document).ready(function() {
$('#add').click(function () {
var name = $('#add').attr("data_id");
var id = $('#add').attr("uid");
var data = 'id='+ id & 'name='+ name; // this where i add multiple data using ' & '
$.ajax({
type:"GET",
cache:false,
url:"welcome.php",
data:data, // multiple data sent using ajax
success: function (html) {
$('#add').val('data sent sent');
$('#msg').html(html);
}
});
return false;
});
});
</script>
<span>
<input type="button" class="gray_button" value="send data" id="add" data_id="1234" uid="4567" />
</span>
<span id="msg"></span>
Run Code Online (Sandbox Code Playgroud)
Jas*_*per 91
您可以创建一个键/值对的对象,jQuery将为您完成剩下的工作:
$.ajax({
...
data : { foo : 'bar', bar : 'foo' },
...
});
Run Code Online (Sandbox Code Playgroud)
这样,数据将自动正确编码.如果您确实希望编写自己的字符串,请确保使用encodeURIComponent():https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURIComponent
您当前的代码无法正常工作,因为字符串未正确编制:
'id='+ id & 'name='+ name
Run Code Online (Sandbox Code Playgroud)
应该:
'id='+ encodeURIComponent(id) + '&name='+ encodeURIComponent(name)
Run Code Online (Sandbox Code Playgroud)
改变var data = 'id='+ id & 'name='+ name;如下,
用这个代替......
var data = "id="+ id + "&name=" + name;
Run Code Online (Sandbox Code Playgroud)
这将很好地工作:)
var data = 'id='+ id & 'name='+ name;
Run Code Online (Sandbox Code Playgroud)
&符号也需要引用:
var data = 'id='+ id + '&name='+ name;
Run Code Online (Sandbox Code Playgroud)
小智 5
var value1=$("id1").val();
var value2=$("id2").val();
data:"{'data1':'"+value1+"','data2':'"+value2+"'}"
Run Code Online (Sandbox Code Playgroud)
var my_arr = new Array(listingID, site_click, browser, dimension);
var AjaxURL = 'http://example.com';
var jsonString = JSON.stringify(my_arr);
$.ajax({
type: "POST",
url: AjaxURL,
data: {data: jsonString},
success: function(result) {
window.console.log('Successful');
}
});
Run Code Online (Sandbox Code Playgroud)
这对我来说已经有一段时间了.