2012-08-24 56 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时遇到问题。 –

相关问题