我试图使用jquery $ .post()</div>将<div>内容发布到数据库

时间:2013-04-25 12:13:29

标签: php jquery mysql

我想使用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});

在这里我得到了“ides”以及“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并且表没有更新。 我能做什么可以帮助我

谢谢,

6 个答案:

答案 0 :(得分:1)

请检查您在标题()中给出的位置的拼写。

更改

header("loction:annotate.php");

header("location:annotate.php");

答案 1 :(得分:0)

尝试使用serializeArray()

var div = $("#ant-container").serializeArray();
$.post("content.php", div );

答案 2 :(得分:0)

尝试将该div放入另一个div并尝试这样

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

然后将“my_div”的内容改为

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

并尝试更正位置

的拼写
header("location:annotate.php");

最好使用 ajax ,如

$.ajax({
           type: "POST",
           url: "content.php", 
           data : { 'contents':div_contents, 'id' :ides},
           success: function(result) 
           {     
                alert(result);
           }
});

答案 3 :(得分: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);

答案 4 :(得分:0)

以下是我将如何对此进行错误处理:

1)使用您可以运行的测试查询创建AJAX调用的页面版本,以确保该部件正在按照您的预期进行操作。建议只需通过浏览器访问此页面,而不是AJAX,直到您知道它有效。正如其他人所说,它可能只是失败,因为你试图在回声,SQL错误或拼写错误等之后发送php标题。

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

一旦你有两个按预期工作,你只需要将它们组合起来。一步一步地采取它,如果它在某些时候失败,你将更好地了解原因。

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

答案 5 :(得分: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>