繁体   English   中英

通过AJAX将数据形成PHP

[英]Form data to PHP through AJAX

多次使用此脚本将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,我是一个完全的新手,因此,通过这些方法获得正确建议的任何建议都将是很棒的!

1)您知道使用jquery可以做到这一点,对吧?

var defaultpic_from  = $('#defaultpic_from').val();

2)同样,您不需要将&变成实体,但是如上所述,您应该在值中使用encodeURIComponent

3)在ajax请求发出之前,您是否已验证所有变量实际上都具有值? 当您查看POST时会发生什么? 您是否在POST中获得成员,但没有值? 还是没有键也没有值?

4)尝试使用开发人员工具中的Chrome的“网络”标签来检查请求和响应

这是我现在使用的示例,其中params是nvp字符串,并且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);

使响应更容易

我敢打赌,您的默认图片的值将终止查询字符串。 您可以像这样包装您的变量,以确保它们正确地转义:

$(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中的vars进行urldecode,但这应该可以做到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM