首先让我告诉你代码
这是脚本
var user_id = $(this).attr("id");
var datastring = 'user_two='+ user_id;
$(".follow").click(function(){
$.ajax({
type: "POST",
url: "include.php",
data: datastring,
success: function(html){}
});
$("#follow"+user_id).hide();
$("#unfollow"+user_id).show();
return false;
});
这是php
<?php
$query = $handler->query("SELECT * FROM users");
while ($row = $query->fetch()) {
$user_two = $row['id'];
$user_one = 1;
?>
<p><?php echo $row['username'];?></p>
<?php
$follow_check = $handler->query("SELECT * FROM follow WHERE user_one='$user_one' AND user_two='$user_two'");
if ($follow_check->rowCount() == 0) {?>
<div id="follow<?php echo $user_one;?>">
<a href="" class="follow" id="<?php echo $user_two;?>">Follow</a>
</div>
<div id="unfollow<?php echo $user_one;?>" style='display:none'>
<a href="" class="unfollow" id="<?php echo $user_two;?>">Following</a>
</div>
<?php }else{?>
<div id="follow<?php echo $user_one;?>" style='display:none'>
<a href="" class="follow" id="<?php echo $user_two;?>">Follow</a>
</div>
<div id="unfollow<?php echo $user_one;?>" >
<a href="" class="unfollow" id="<?php echo $user_two;?>">Following</a>
</div>
<?php } ?>
<?php } ?>
这是插入查询的php
<?php
include('db.php');
$user_two = $_POST['user_two'];
$query = $handler->query("INSERT INTO follow (user_one,user_two) VALUES ('1','$user_two')");
?>
我需要插入两件事,即user_one = Session = 0或当前登录的用户,但我只是将其设为静态的平均时间和user_two,即用户ID或您将点击后跟随的那个人。但是idk如何在ajax中做到这一点,就像在php中你可以得到像<a href="?id=">
这样的链接的价值,然后得到价值,$ _GET [&#39; id&#39;]但idk如何存储该值为脚本
我只需要解释user_id = $(this).attr(&#34; id&#34;);
并在$(".follow").click
内返回false,当我将其设为false时,我需要刷新页面,只是为了看到链接的变化,以及为什么会这样?
顺便说一句,当我点击跟随链接时,它将成功插入到数据库,但user_two的值始终为0,因为我不知道如何将链接ID存储到脚本。
答案 0 :(得分:0)
不是100%肯定我是否理解但让我尝试:
首先:id="<?php echo $user_id; ?>"
没关系。
您可以使用var user_id = $(this).attr("id");
获取它
也许你应该在$(“。follow”)... block
$(".follow").click(function() {
var user_id = $(this).attr("id"); //"this" will refer the element with the "follow" class. Then user_id will be the value of the id for the clicked element.
$.ajax({
type: "POST",
url: "include.php",
data: {user_two: user_id}
}).done(function(data) {
data = JSON.parse(data);
if(data.msg) {
//everything is ok
$("#follow"+user_id).hide();
$("#unfollow"+user_id).show();
} else {
//handle the error
}
)}
});
PHP部分:
<?php
include('db.php');
$user_two = $_POST['user_two'];
$query = $handler->query("INSERT INTO follow (user_one,user_two) VALUES ('1','$user_two')");
if($query) { //check if query ran successfully
echo json_encode(array("msg" => 1)); 1 for success
} else {
echo json_encode(array("msg" => 2)); 2 for error
}
?>
至于“ajax中的返回错误”: .follow - &gt;定位标签。单击标记会使浏览器导航到href =“”中指定的URL。 return false会禁用此行为,因为您不需要刷新页面或转到其他页面:)