PHP文件中$ _POST值未完成

时间:2016-01-27 17:59:46

标签: php ajax database forms

他是个人,

我很困惑,因为我的表格值发生了什么。

首先我创建了一个简单的html表单,我将其转换为字符串。以下是我的document.ready

中代码的一部分
 var fbid = $("#fbid").val();
    var name = $("#name").val();
    var address1 = $("#address1").val();
    var address2 = $("#address2").val();
    var city = $("#city").val();
    var postal = $("#postal").val();
    var countries = $("#countries").val();
    var dataString = 'fbid=' + fbid + '&name=' + name + '&address1=' + address1 + '&address2=' + address2 + '&city=' + city + '&postal=' + postal + '&countries=' + countries

到目前为止一切顺利。然后我使用以下代码将其上传到php文件,以便将数据插入我的数据库

            $.ajax({
            type: "POST",
            url: "*http://www.url.com/file.php*",
            data: dataString,
            cache: false,
            success: function (result) {
                alert(result);
            }
        });

现在不知何故,只有我的最后一个价值才是问题。此选择输入仅将前5个字符放在我的数据库中。当我用文本输入尝试它时,它只显示3个字符(我认为这很奇怪)。我试图调试并找到问题所在:

  • 更改字符串的顺序(上一个和后一个最后一个值)导致第二个最后一个值无法正确显示(因此国家/地区成功发布(也很奇怪:P)
  • 我删除了我的php文件中的所有内容,并将其替换为

$国家= $ _ POST ['国家']; echo" $ countries&#34 ;;

这也导致只显示前5个字符

  1. 我使用console.log查看字符串,此处显示完整内容
  2. 所以在发送字符串和接收它的php文件之间几乎看起来有问题

    老实说,我知道这里出了什么问题。我会喜欢一些帮助,因为我现在已经花了最好的一周!

    再见 克里斯

1 个答案:

答案 0 :(得分:0)

由于您交换字段时,国家/地区值已正确插入,但第二个值被截断。这意味着您在发布的数据方面达到了极限。

虽然极不可能,但这也是你想测试的东西。请尝试以下方法:

  1. 定期发帖,没有ajax并检查所有数据是否正确发布。如果不是,则很可能您的apache配置或htaccess中设置了不正确的post_max_size

  2. 如果上面的测试有效,那么常规帖子很好,它与ajax有关。确保您的数据不是作为url param(查看它不应该的代码)。但是,首先单独发布每个值以查看它们是否正在通过。

  3. 通过这些测试的结果,您应该能够辨别出问题所在。你的代码很好,我强烈认为它必须是配置的东西。