我有一个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+"¬e="+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)中填充了正确的注释?
答案 0 :(得分:2)
三件事:
1 - 永远不要使用mysql_函数(没人应该)使用mysqli_如果你必须或者更好看看PDO
2 - 使用$ _SESSION global来保存用户和用户ID之类的东西(这样他们就无法使用它来改变/显示其他用户的数据)
3 - 对于您的问题我看到您已经发送了client_id,为什么不从那里抓取它?
希望这有帮助
答案 1 :(得分:0)
为什么要将查询字符串放到data
? data
想要一个对象数组,或者你必须将查询字符串放到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+"¬e="+note+"&client_id="+client_id+"&action=addnote",
success:function(data){
showNote();
}
});
然后您可以使用$_POST['client_id']
或(method2)访问带有$_GET['client_id']
答案 2 :(得分:0)
客户端ID不应与表单一起发送,因为客户端可以操作该表单。这意味着一个客户端可以通过更改html中的数字为其他客户添加注释。
我会假设您的客户端已登录并且ID存储在会话中,因此您只需在php文件中访问它(例如):
$_SESSION['client']['id'];