我想用AJAX发布数据并将其插入到数据库表中。 问题是,一半的数据丢失,我不知道为什么。我检查了所有的参数名称等,因为它似乎我有一个错别字(我错过了一些字符,但我修正了),但仍然无法正常工作。 即使console.log()和警报提供了我想要发布的完整数据,但它永远不会到达,php会输出空参数。停用JavaScript或删除“返回false”时php脚本按预期打开并且工作得很好,没有数据丢失(如预期的那样)。jQuery AJAX发布数据丢失
也许我真的只是错过了某个地方的单个字符... 我也尝试逃避(逃逸())的字符串,但它并没有改变任何东西。
下面的代码和一些日志/警报/回声
$("#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上运行它只能很好地工作。
任何想法?我在那里犯了什么愚蠢的错误?
嗯,一些linebreaks都失踪了,对此感到抱歉。 – user1021052