gpt4 book ai didi

php - 接受/拒绝提交按钮与 php 循环

转载 作者:行者123 更新时间:2023-11-29 06:10:52 25 4
gpt4 key购买 nike

我试图允许用户通过提交按钮接受/拒绝事件请求。信息循环显示并连续显示(用户名、位置、接受、拒绝)。

现在显示2个用户;用户 1 和用户 2(当前用于测试)。无论如何,我正在尝试让正确的用户 ID 与正确的用户名一起使用。目前,无论我接受或拒绝哪个用户,都会显示用户2。我尝试根据隐藏输入设置用户 ID 的值,但它无法正常工作。

这是我的代码。

for($i=0;$i<count($userExplode)-1;$i++){
$user = mysql_query("select userid,username from users where userid = ".$userExplode[$i]." ");
$user = mysql_fetch_array($user);
$userLoc = mysql_query("select userLocation from userinfo where userid = ".$userExplode[$i]." ");
$location = mysql_fetch_array($userLoc);
$locationExplode = explode("~",$location['userLocation']);

//the displayed output is working correctly so I know it's setting $user['userid'] properly
echo '<form method="post"><table><tr><td><a href="profile.php?userid=' . $user['userid'] . '">' . $user['username'] . '</a></td>
<td>' . $locationExplode[0] . ', ' . $locationExplode[1] . '</td>
<td><input type="hidden" name="userReq" value='.$user['userid'].'></td>
<td><input type="submit" name="accept" value="Accept Request" ></td>
<td><input type="submit" name="decline" value="Decline Request" ></td></tr>';
}
echo '</table></form>';
}
if(isset($_POST['accept'])){
echo $_POST['userReq']; //displays user 2 even if I click user 1
}
if(isset($_POST['decline'])){
echo $_POST['userReq']; //also displays user 2 even if i click user 1
}
}

最佳答案

您的代码有很多错误:

  • 您没有关闭 for在循环中
  • 您的表单上没有任何操作
  • 您将为每个循环创建一个新表

用 anchor 替换提交按钮并在其中添加参数。然后您可以将 anchor 设置为看起来像按钮。

<input type="submit" name="decline" value="Decline Request" >

变成了

echo "<a href="yourfile.php?userid=".$user['userid'].">Decline request</a>";

删除所有 <form> s 并将所有内容加载到 1 个表中。

结果:

<?php
if(isset($_GET['action']) AND isset($_GET['userid'])){

switch($_GET['action']){
case "accept":
// do whatever
break;
case "decline":
// do whatever
break;
default:
die('something wrong');
break;

}

}

echo '<table width="100%">';

for($i=0; $i <= count($userExplode); $i++){
$q = "
SELECT u.userid,u.username, userLocation
FROM users u
INNER JOIN userLocation ul ON u.userid = ul.userid
WHERE u.userid = ".$userExplode[$i]."
";
$rs = mysql_query($q) or die(mysql_error());
$user = mysql_fetch_array($rs);

$locationExplode = explode("~",$user['userLocation']);

//the displayed output is working correctly so I know it's setting $user['userid'] properly
echo '<tr><td><a href="profile.php?userid=' . $user['userid'] . '">' . $user['username'] . '</a></td>'.
'<td>' . $locationExplode[0] . ', ' . $locationExplode[1] . '</td>'.
'<td><a href="yourfile.php?userid=' . $user['userid'] . '&action=accept">Accept Request</a></td>'.
'<td><a href="yourfile.php?userid=' . $user['userid'] . '&action=decline">Decline Request</a></td></tr>';

}

echo '</table>';

我认为这只是冰山一角..如何获得$userExplode例如?这是非常奇怪和不合逻辑的。我假设您首先运行一个查询来获取所有用户,然后循环使用这个 for?

关于php - 接受/拒绝提交按钮与 php 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9243453/

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