返回ajax丢失数据,ajax - jQuery AJAX发布数据丢失

我正在尝试使用AJAX发布数据并将其插入数据库表中。

问题是,一半的数据丢失了,我不知道为什么。我检查了所有参数的名称等,因为它似乎在某处出现错字(我丢失了一些字符,但我已将其修复),但仍然无法正常工作。

即使console.log()和警报也提供了我要发布的完整数据,但是它从未到达,因此php输出空参数。停用JavaScript或删除“返回false”时; php脚本已按预期打开,并且运行良好,没有数据丢失(按预期)。

也许我真的只是在某个地方缺少一个字符...

我也尝试转义(escape())字符串,但没有任何改变。

这是代码和一些日志/警报/回声$("#itemspeichern").click(function(){

setVisible("#item-process");

var itemname = escape($("#itemname").val());

if ($("#itemneu").is(":checked")) {

var itemneu = $("#itemneu").val();

} else {

var itemneu = 0;

}

var itembild = escape($("#itembild").val());

var itemkurzb = escape($("#itemkurzb").val());

var theset = escape($("#theset").val());

console.log("itemname=" + itemname + "&itemneu=" + itemneu + "&itembild=" + itembild + "&itemkurzb=" + itemkurzb + "&theset=" + theset);

$.ajax({

url: "<?php actualPath(); ?>save-admin-action.php",

type: "POST",

data: "itemname=" + itemname + "&itemneu=" + itemneu + "&itembild" + itembild + "&itemkurzb" + itemkurzb + "&theset=" + theset,

success: function(result){

alert("itemname=" + itemname + "&itemneu=" + itemneu + "&itembild=" + itembild + "&itemkurzb=" + itemkurzb + "&theset=" + theset);

document.getElementById("item-process").innerHTML = result;

}

});

return false;

});

这是什么:

-在控制台上输出所有字段的数据

-显示警报中的所有数据

但是保存完成后,数据库缺少itembild和itemkurzb的值。从php文件获取查询作为响应表明,对于这些字段,参数确实为空。这是我在php中所做的(我将其缩短了一点,不要对SQL注入和内容发表评论:P)

$ergebnis = mysql_query("INSERT INTO mk7_items(id, de, neu, kurzbeschreibung, bild) VALUES(DEFAULT, '".$_POST["itemname"]."', ".$_POST["itemneu"].", '".$_POST["itemkurzb"]."', '".$_POST["itembild"]."')");

当我收到响应时,最后两个字段为空,并且没有任何内容保存到数据库中。

如我所说,将JS设置为OFF并在php上运行只能很好地工作。

有任何想法吗?我在那里做过任何愚蠢的错误?

最佳答案

您在=中缺少一对data,应该是这样的:data: "itemname=" + itemname + "&itemneu=" + itemneu + "&itembild=" + itembild + "&itemkurzb=" + itemkurzb + "&theset=" + theset,

或者更好的是,停止使用escape(由于encodeURIComponent不能很好地处理非ASCII数据,因此不赞成使用escape或使用data),并为$.ajax参数使用一个对象:

var itemname = $("#itemname").val();

//...

$.ajax({

url: "<?php actualPath(); ?>save-admin-action.php",

type: "POST",

data: {

itemname: itemname,

itemneu: itemneu,

itembild: itembild,

itemkurzb: itemkurzb,

theset: theset

},

//...

});

这样,将负责将您的数据转换为正确的POST(或GET或...)格式,而您不必担心细节。

关于ajax - jQuery AJAX发布数据丢失,我们在Stack Overflow上找到一个类似的问题:

https://stackoverflow.com/questions/7947592/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值