多次使用此脚本将1或2个值传递给PHP文件,效果非常好。现在使用它传递7个值,只有前2个传递。
$(document).ready(function(){
$("form#send_note").submit(function() {
var to_user = $('#to_user').attr('value');
var from_user = $('#from_user').attr('value');
var defaultpic_from = $('#defaultpic_from').attr('value');
var defaultpic_to = $('#defaultpic_to').attr('value');
var your_username = $('#your_username').attr('value');
var message_title = $('#message_title').attr('value');
var message_contents = $('#message_contents').attr('value');
$.ajax({
type: "POST",
url: "../inbox/send_note.php",
data: "to_user="+ to_user +"& from_user="+ from_user + "& defaultpic_from="+ defaultpic_from + "& defaultpic_to="+ defaultpic_to + "& your_username="+ your_username + "& message_title="+ message_title + "& message_contents=" + message_contents,
success: function(){
$('form#send_note').hide(function(){$('div.success2').fadeIn();});
}
});
return false;
});
});
我已经仔细检查了所有名称,所有这些都是为了它只是from_user(defaultpic_from)之后的值,依此类推。 我相信这就是我列出“数据:”的方式。当谈到javascript时,我是一个完整的新手,所以任何关于正确的方法的建议都会很棒!
答案 0 :(得分:1)
1)你知道jquery你可以做到这一点,对吗?
var defaultpic_from = $('#defaultpic_from').val();
2)另外,你不需要转动&进入一个实体,但如上所述,你应该在值
中使用encodeURIComponent3)在ajax请求发出之前,您是否验证了所有变量实际具有的值?当你看POST时会发生什么?你是在POST中获得成员,但没有值?或没有钥匙,没有价值观?
4)尝试使用开发人员工具中的Chrome网络标签来检查请求和响应
这是我现在使用的一个例子,其中params是nvp string,sync是true
var callService = function(sync, params, successCB, errorCB){
console.log('ENTER callService');
$.ajax({
type : 'POST',
url : 'required/core/Service.php',
async : sync,
data : params,
dataType : 'json',
success : function(data){
console.log('ENTER POST SUCCESS');
successCB(data);
},
error : function(){
console.log('ENTER POST ERROR');
errorCB();
}
});
};
如果您可以进入请求和响应标头并向我们展示,那将会非常有用。你可以有PHP回声
echo json_encode($_POST);
以便更容易获得回复
答案 1 :(得分:0)
我敢打赌,默认图片的值正在终止查询字符串。您可以像这样包装您的变量以确保它们被正确转义:
$(document).ready(function(){
$("form#send_note").submit(function() {
var to_user = encodeURIComponent($('#to_user').attr('value'));
var from_user = encodeURIComponent($('#from_user').attr('value'));
var defaultpic_from = encodeURIComponent($('#defaultpic_from').attr('value'));
var defaultpic_to = encodeURIComponent($('#defaultpic_to').attr('value'));
var your_username = encodeURIComponent($('#your_username').attr('value'));
var message_title = encodeURIComponent($('#message_title').attr('value'));
var message_contents = encodeURIComponent($('#message_contents').attr('value'));
$.ajax({
type: "POST",
url: "../inbox/send_note.php",
data: {to_user:to_user, from_user:from_user, defaultpic_from: defaultpic_from, defaultpic_to:defaultpic_to, your_username:your_username, message_title:message_title, message_contents:message_contents},
success: function(){
$('form#send_note').hide(function(){$('div.success2').fadeIn();});
}
});
return false;
});
});
你需要在php中对post vars进行urldecode,但是应该这样做。