Ajax发布具有特定ID的注释

时间:2013-12-17 21:13:25

标签: php jquery

我有一个index.php文件,它包含一些客户端数据,每个客户端数据都有一个唯一的id。 “create-a-note”-form(使用ajax)向mysql表发送一个注释,并立即将注释发布到index.php。 问题是我无法将client_id传递给处理文件,因此所有记录都显示在所有客户端上:

的index.php

echo "
<div class='note' id='typenote".$clients_id."'> 
<form>*the form*</form>
</div>
<div id="notes"></div>
";

脚本

$(document).ready(function(){
    function showNote(){
        $.ajax({
          type:"post",
          url:"process.php",
          data:"action=shownotes",
          success:function(data){
                $("#notes").hide().html(data).fadeIn('slow');
          }
     });
 }

 showNote();

 $("#button").click(function(){
    var user=$("#user").val();
    var note=$("#note").val();
    var client_id=$("#client_id").val();

        $.ajax({
          type:"post",
          url:"process.php",
          data:"user="+user+"&note="+note+"&client_id="+client_id+"&action=addnote",
          success:function(data){
            showNote();
          }
        });
 });
});

Process.php

    include("connect.php");

    $action=$_POST["action"];

    if($action=="shownotes"){
      $show=mysql_query("Select * from sys_notes order by note_id desc");
    etc...

}
  }
  else if($action=="addnote"){
etc...

这就是问题...... 我如何获得$ client_id

的值
Select * from sys_notes WHERE client_id=$client_is order by note_id desc
在process.php文件中

所以在我的showNote()脚本id(#notes)中填充了正确的注释?

3 个答案:

答案 0 :(得分:2)

三件事:

1 - 永远不要使用mysql_函数(没人应该)使用mysqli_如果你必须或者更好看看PDO

2 - 使用$ _SESSION global来保存用户和用户ID之类的东西(这样他们就无法使用它来改变/显示其他用户的数据)

3 - 对于您的问题我看到您已经发送了client_id,为什么不从那里抓取它?

希望这有帮助

答案 1 :(得分:0)

为什么要将查询字符串放到datadata想要一个对象数组,或者你必须将查询字符串放到url

    $.ajax({
      type:"post",
      url:"process.php",
      data:{user: user, note: note, client_id: client_id, action: "addnote"},
      success:function(data){
        showNote();
      }
    });

或(method2)

    $.ajax({
      type:"post",
      url:"process.php?user="+user+"&note="+note+"&client_id="+client_id+"&action=addnote",
      success:function(data){
        showNote();
      }
    });

然后您可以使用$_POST['client_id']或(method2)访问带有$_GET['client_id']

的client_id

答案 2 :(得分:0)

客户端ID不应与表单一起发送,因为客户端可以操作该表单。这意味着一个客户端可以通过更改html中的数字为其他客户添加注释。

我会假设您的客户端已登录并且ID存储在会话中,因此您只需在php文件中访问它(例如):

$_SESSION['client']['id'];