私はAJAXでデータを投稿し、それをデータベーステーブルに挿入しようとしています。 問題は、データの半分が欠落していて、その理由がわかりません。私はどこかのタイプミス(いくつかの文字が欠けていたが、私はそれを修正した)のように見えたので、パラメータの名前などをすべてチェックしたが、それでもうまくいかない。 console.log()とアラートでも投稿したい完全なデータが得られますが、到着することはありません。PHPは空のパラメータを出力します。 JavaScriptを無効にするか、「return false;」を削除するとPHPスクリプトは期待どおりに開き、正常に動作し、データは失われません(期待通り)。jQuery AJAX投稿データが失われる
多分私はちょうど1つの単一の文字をどこかで失っています... 私はまた、エスケープ(エスケープ())文字列を試みたが、それは何も変更されませんでした。
ここでは、これは何のコードといくつかのログ/アラート/エコー
$("#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ファイルからの応答として取得すると、実際にはこれらのフィールドでパラメータが空であることがわかりました。
$ergebnis = mysql_query("INSERT INTO mk7_items(id, de, neu, kurzbeschreibung, bild) VALUES(DEFAULT, '".$_POST["itemname"]."', ".$_POST["itemneu"].", '".$_POST["itemkurzb"]."', '".$_POST["itembild"]."')");
私は応答を取得するときに最後の2つのフィールドが空であると何がDBに保存されます。ここで私はPHPでやったことだ(P Iは、SQLインジェクションやものについてはコメントしないでください、それを少し短く) 。 私が言ったように、JSをOFFに設定し、PHP上で実行するだけで、うまく動作します。
アイデア?私がそこでやったどんなばかげた間違い?
data: "itemname=" + itemname + "&itemneu=" + itemneu + "&itembild=" + itembild + "&itemkurzb=" + itemkurzb + "&theset=" + theset,
以上、escape
の使用を停止(非ASCIIデータを処理していないため、escape
に賛成かencodeURIComponent
で廃止されている:あなたは、あなたのdata
で夫婦=
を逃している
ですが、一部の改行がありません。申し訳ありません。 – user1021052