gpt4 book ai didi

php - 社交网络墙发布逻辑不起作用

转载 作者:行者123 更新时间:2023-12-01 00:27:34 26 4
gpt4 key购买 nike

通过屏幕截图和下面的代码,我试图让“删除按钮”只显示给墙贴的所有者。我以 Michael Grigsby 的身份登录,正如您从屏幕截图中看到的那样,第一个墙贴隐藏了“删除按钮”,但其余的即使涉及到我不应该拥有的 Mike Wyatt 贴子也会显示。

我不明白为什么会这样。我有两种可能性;要么我必须在 jQuery 中循环遍历墙上的帖子,要么我的 SQL 语句写得不正确。关于为什么会这样行事有什么想法吗?

enter image description here

PHP 和 jQuery 代码:

<?php   $this->load->helper('date');
$userid = $this->session->userdata('userid');
$query = $this->db->query("SELECT * FROM churchMembers WHERE cMuserId = '{$userid}'");
$row = $query->row();
if ($query->num_rows() != 0) {
$membersChurchId = $row->cMchurchId;
$query2 = $this->db->query("SELECT wp.idwallPosts, wp.entryData, wp.entryCreationDateTime, u.firstname, u.lastname, u.userid, u.defaultImgURI FROM users u
INNER JOIN wallPosts wp ON wp.postingUserid = u.userid
WHERE wp.wpChurchId = '{$membersChurchId}' ORDER BY wp.idwallPosts DESC LIMIT 200");
foreach ($query2->result() as $row) { ?>
<?php // the following php is the bootstrapper for the wall
if ($userid != $row->userid) { ?>
<script type="text/javascript">
$(document).ready(function() {
$("#delPost").remove();
});
</script>
<?php } ?>

最佳答案

我在看这个:

$("#delPost").remove();

...并认为您可能在每个项目上都有 id="delPost"。关于 id 属性的一个常见误解是您可以重复使用它们,但实际上不能。每页只能有一个 id="delPost" 元素(validating 您的 HTML 会显示错误)。

无论如何,您的脚本只读取第一个,如this demo 所示。 .每个 id 都必须是唯一的,您可能想改用 class 并重新考虑您的逻辑,但这无论如何都没有太大意义,因为在该循环中,一旦一个元素被隐藏,它们 < em>all 是因为您的选择器不是很具体(适用于每个 与您的选择器匹配的元素,循环/重复该脚本是多余的)。

有很多方法可以解决这个问题,但我的建议是:与其使用 javascript 隐藏或删除它们,不如根本不使用 PHP 代码输出它们。

关于php - 社交网络墙发布逻辑不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11713436/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com