2017-08-15 73 views
0

我想为我的网站建立一个评论系统,使用Ajax,jQuery和PHP。我的网站有很多查询,我怎样才能提交评论每个查询分开?Ajax数据插入数据库不工作

Ajax代码

$(document).ready(function() 
    { 
    $("#comq").click(function() { 
     var comment=$("#comment").val(); 
       var qid=$("#qid").val(); 
     $.ajax({ 
     cache:false, 
     type:"post",   
     url:"jquery.php", 
data:{comments:comment, qid:qid}, 
     success:function(data) 
     { 
    $(".cmt").html(data); 
     } 
    }); 
    }); 
    }); 

,当我提出的意见,评论仅供插入,但查询(QID)在DB(数据库表)

PHP代码没有插入

if(isset($_POST["comments"])){   
    $comment=$_POST['comments']; 
    $qid= $_POST['qid']; 
    $reslt_user= mysqli_query($connection,"SELECT * FROM tbl_users,`queries` where id='".$_SESSION['id']."' AND qid= '".$qid."'"); 
    $row_lat_lng= mysqli_fetch_array($reslt_user); 
     $stmt = mysqli_query($connection,"INSERT INTO comments set uid='".$_SESSION['id']."',comments='".$comment."',reply='".$reply."', qid= '".$qid."' "); 

HTML代码

 <div id="comments" class="cmt" > 
    <input class="commentbox"id="comment"name="comments"placeholder="Comment 
       Here" maxlength="50"> 
    <input type="hidden"id="qid "name="qid"> 
    <button type="button" id="comq" name="compost" class="butn2" value="submit"> 
    </button> 
         </div> 

如何根据查询发表评论(如何插入)?

+2

您已开放给SQL注入,参数化您的查询。检查返回的查询调用是否有错误。 – chris85

+0

你在哪里定义'$ reply'? –

+0

@ chris85请给我更多澄清这一点 –

回答

1

看到这里这条线,

<input type="hidden" id="qid "name="qid"> 
         ^^^^ 
  • 错位关闭"ID属性。
  • value属性从隐藏输入元件缺失。

所以隐藏输入元素应该是这样的:

<input type="hidden" id="qid" name="qid" value="SOME VALUE" /> 

旁注:了解prepared statement因为现在你的查询很容易受到SQL注入攻击。另见how you can prevent SQL injection in PHP

+0

没有静止同样的问题,让我知道我怎么能给值什么是使用 –

+0

@MadhuMunna如果你不给任何'value'属性,然后用这个'无功QID = $(“#qid”)。val();''你会得到'qid'为* undefined *。你改变收盘'“'*为ID *属性如做'警报(QID);?'你的js代码里面,看看它显示 –

+0

我在哪里可以把警报在阿贾克斯 –