0

jQueryの自動保存はsuccess関数を実行していますが、MySQLデータベースを更新していません。私は間違って何をしていますか?

jQuery:

function autosave() {
    var t = setTimeout("autosave()", 5000);

    var translation = $("#doc-translation").val();

    if (translation.length > 0) {
        $.ajax({
            type: "POST",
            url: "update-draft-submission.php",
            data: translation,
            cache: false,
            success: function() {   
                         $(".autosaved").empty().append("saved");
            }
        });
    }
} 

PHP:

<?php
session_start();
//retrieve our data
$iddoc = $_GET['iddoc'];
$trans = translation;
$transowner = $_SESSION['userid'];
$true = 1;
include "../dbconnect.php";
$query = "UPDATE translations
          SET trans='$trans'
          WHERE iddoc='$iddoc'
          AND transowner='$transowner'";
mysqli_query($query);
mysqli_close();

echo "Saved";
?>
4

1 に答える 1

1

PHPのデータを正しくフェッチしていません:

$iddoc = $_GET['iddoc'];
$trans = translation;
  • iddocはGETパラメーターとしてどこにも渡されません
  • 「翻訳」は変数ではありません(定数でもないと思います)

クエリで必要な値を取得しないと、SQLが壊れます。

次のようにJavaScriptを更新します。

$.ajax(
 {
   type: "POST",
   url: "update-draft-submission.php",
   data: data: {translation:translation,iddoc:"XXX"},
   cache: false,
   success: function()
   {   
     $(".autosaved").empty().append("saved");
   }
 });

XXXを自分の値に置き換えiddocます。

次に、PHPでそれらを次のようにフェッチします。

$iddoc = $_POST['iddoc'];
$trans = $_POST['translation'];
于 2012-08-24T23:15:47.043 に答える