0

我想使用 jquery $.post() 方法将数据添加到表中..但它没有更新。HTML:这是 html 代码

    <div id="ant-container" name="text" style="border:1px solid #CCCCCC;height:300px;width:80%;">
    <?php if (isset($_POST['submit'])&& $_POST['text'] ==''){
    echo parseWord($myFile);
    }elseif (isset($_POST['text'])) { echo $_POST['text'];}
    </div>

jquery:这个 jquery 代码

 var div_contents = $('#ant-container').html();
    var ides = $('#id').val();
    $.post("content.php", { contents:div_contents, id :ides});

在这个我得到“ide”和“div_contents”PHP:这是我的php代码(content.php)

$div = mysql_real_escape_string($_POST['contents']); 
$id = mysql_real_escape_string($_POST['id']); 
$sql ="UPDATE `antr_essay` SET `annotext`=      {$div},`grade`='$_POST[grade]',`comments`='$_POST[comments]'
WHERE id=$id";
$update=$DB->update($sql);
$sql ="UPDATE `antr_essay` 
   SET `annotext`={$div},
   `grade`='$_POST[grade]',
    `comments`='$_POST[comments]'
        WHERE id=$id";
   $update=$DB->update($sql);
      //var_dump($sql);exit;
if (isset($update)){
  echo  '<div align="center" class="alert alert-success">';
  echo "Annotation added Successfully";
  echo '</div>';
}
header("loction:annotate.php");

我提交后没有重定向到 content.php 并且表没有更新。我能做什么请帮助我

谢谢,

4

6 回答 6

1

Please check the spelling of location you have given in header().

Change

header("loction:annotate.php");

To

header("location:annotate.php");
于 2013-04-25T12:16:10.680 回答
0

Try this, using serializeArray():

var div = $("#ant-container").serializeArray();
$.post("content.php", div );
于 2013-04-25T12:16:49.033 回答
0

Try to put that div into another div and try like this

    <div id="my_div"><div id="ant-container" name="text" style="border:1px solid #CCCCCC;height:300px;width:80%;"></div></div>

Then get the content of "my_div" as

var div_contents = $('#my_div').html();
var ides = $('#id').val();
$.post("content.php", { contents:div_contents, id :ides});

and try to correct the spelling of location

header("location:annotate.php");

Better to use ajax like

$.ajax({
           type: "POST",
           url: "content.php", 
           data : { 'contents':div_contents, 'id' :ides},
           success: function(result) 
           {     
                alert(result);
           }
});
于 2013-04-25T12:17:04.423 回答
0

在我看来你有一些 sql 错误:

$sql ="UPDATE `antr_essay` SET `annotext`=      {$div},`grade`='$_POST[grade]',`comments`='$_POST[comments]' -> like below .
WHERE id=$id";
$update=$DB->update($sql);
$sql ="UPDATE `antr_essay` 
   SET `annotext`={$div}, -> **this line why not SET `annotext`='{div}'** ?
   `grade`='$_POST[grade]',
    `comments`='$_POST[comments]'
        WHERE id=$id";
   $update=$DB->update($sql);
于 2013-04-25T12:25:48.530 回答
0

以下是我将如何解决此问题:

1) 使用您可以运行的测试查询创建 AJAX 调用的页面版本,以确保该部分正在执行您期望的操作。建议仅通过浏览器访问此页面,而不是 AJAX,直到您知道它可以工作。正如其他人所说,它可能只是失败了,因为您试图在回显、SQL 错误或拼写错误等之后发送 php 标头。

2) 制作另一个测试页面,只提供您期望 AJAX 处理的响应。建议只是让 DIV 内容发布并回显。

一旦你让这两个按预期工作,你只需要将它们结合起来。逐步进行,如果它在某个时候失败,您将对原因有更好的了解。

最后,您似乎没有任何处理 SQL 错误的工具 - 建议您添加一些工具,这样您就会知道这是否是原因。

于 2013-04-25T12:36:36.823 回答
0

用于<script src = "http://code.jquery.com/jquery-1.9.1.js"></script>连接到 jquery 并在下面尝试

<script type="text/javascript">
    $(document).ready(function () {
    var div_contents = $('#ant-container').html();
        var ides = $('#id').val();
        $.post("content.php", { contents:div_contents, id :ides});
    });
</script>
于 2013-04-25T13:07:12.083 回答