在foreach中使用isset()不起作用?

时间:2013-01-27 03:50:16

标签: php mysql foreach

基本上,我想从mysql数据库中保存的变量生成无限数量的按钮。

$stmt = $conn->prepare('SELECT * FROM array');
$stmt->execute();
$array = $stmt->fetchAll();

foreach ($array as $var) {
echo '<br>Would you like to accept or reject?';
echo '<br><input name="accept' . $var['subject'] . '" type="submit" value="Accept" /><input name="reject' . $var['subject'] . '" type="submit" value="Reject" />';
}

现在,当我尝试按下按钮时,没有任何反应。这是我认为可能适用的代码:

foreach ($array as $var) {
$accept = 'accept' . $var['subject'];
$reject = 'reject' . $var['subject'];
if (isset($_POST[$accept])) {
//script for accept
}
if (isset($_POST[$reject])) {
//script for reject
}
}

没有错误。我认为这是因为我不能以这种方式在foreach中使用isset。有没有其他有效的方法来做我想做的事情?

2 个答案:

答案 0 :(得分:0)

您可以并且它可以正常工作,但您可能希望将其更改为以下

if (!empty($_POST[$accept])) {
    //script
}

if (!empty($_POST[$reject])) {
    // script
}

$_POST是一个全局变量,并且总是被视为'set'是个问题。

答案 1 :(得分:0)

我收到此错误的原因是我忘记在 html 文件中使用

标签。