2012-08-24 91 views
0

我的jQuery自動保存運行成功功能,但沒有更新MySQL數據庫。我做錯了什麼?jQuery自動保存運行成功功能,但不更新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"; 
?> 
+0

你從MySQL查詢得到一個錯誤?如果不是,那麼它可能不會影響任何行。使用mysqli_affected_rows或將測試查詢直接輸入到mysql中。 –

+0

嗯..我在SQL瀏覽器跑這和它的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"); 
    } 
}); 

更換XXXiddoc值。

然後在PHP中獲取它們爲:

$iddoc = $_POST['iddoc']; 
$trans = $_POST['translation']; 
+0

難道不是 ' 「SET反= 'lkjh' WHERE iddoc = '25' 和transowner = 'hubrid' UPDATE翻譯」翻譯定義爲我的js文本區域的值?如果不是,我怎麼能通過它?我以爲我是。 而iddoc作爲GET參數傳遞給URL? –

+0

我已經更新了關於如何在JavaScript中傳遞值以及如何在PHP中獲取它們的代碼的答案 – raidenace

+0

太棒了!在從'',iddoc:「XXX」},'part'中抓取iddoc時遇到問題。 –

相關問題