【问题标题】:Using a generic if statement for all values of an array in PHP在 PHP 中对数组的所有值使用通用 if 语句
【发布时间】:2014-05-31 04:11:44
【问题描述】:

我有这个从数据库表中收集数据的 php 语句。它遍历所有行并将它们分成 2 个表(该游戏的主队和客队)。我也有单选按钮,因此用户可以选择他们希望在每场比赛中赢得哪支球队。有 9 场比赛。

$games = array();

for($num = 1; $num <= 9; $num++)
{
    $games[$num] = "<table border='1'><tr><b><h4>Game ".$num."</h4></b><th>Home</th><th>Draw</th><th>Away</th></tr>";
}

while ($row = mysql_fetch_array($rs))
{
    for($num = 1; $num <= 9; $num++)
    {
        $games[$num] .= 
" <tr>
 <td><input type='radio' id='home".$num."' name='game".$num."' value='".$row['home'.$num]."'  > ".$row['home'.$num]."</td>
 <td>Draw <br /><input type='radio' id='draw".$num."' name='game".$num."' value='0'></td>
 <td>".$row['away'.$num]."<input type='radio' id='away".$num."' name='game".$num."' value='".$row['away'.$num]."'></td>
 </tr>";
    }
}

在提交时,我希望能够通过 SELFSUBMIT 为每个游戏做一些事情。

因此,如果用户为比赛 n 选择主队,我想显示一条消息。

if($_SERVER["REQUEST_METHOD"] == "POST")
{

    if($_POST['game".$num."'] = ('home'.$num))
    {
        echo ('home'.$num);
    }

}

那是我的错误 php 代码。请告诉我是否可以解决此问题。

【问题讨论】:

  • if($_POST['game".$num."'] = ('home'.$num)) 中的比较运算符不应该是== 吗?另外,我认为您必须用form 标签包围您的inputs,并让您的脚本检查通过其name 属性选择了哪个单选按钮。即,如果您每个有 3 个电台名称:radio1radio2radio3,然后在提交表单时检查选择了哪个电台。

标签: php html mysql


【解决方案1】:

您可能想使用jquery

$(document).ready( function(){
    $("input[id^=home]").on("click", function(){
        $("#spanDisplay").html( $(this).attr("id") );
        //you can also display $(this).attr("name") or $(this).val() to print the value
    });
});

在您的 html 中,您可以使用 span 或 div 例如显示 id 的值。 所以在你的范围内

<span id="spanDisplay"></span>

更新:仅使用 PHP

$games[$num] .= "<form name="aForm" method="POST" action="afterSubmit.php">";

for($num = 1; $num <= 9; $num++){
    $games[$num] .= "<tr><td><input type='radio' id='home".$num."' name='game".$num."' value='".$row['home'.$num]."'> ".$row['home'.$num]."</td>
                     <td>Draw <br /><input type='radio' id='draw".$num."' name='game".$num."' value='0'></td>
                     <td>".$row['away'.$num]."<input type='radio' id='away".$num."' name='game".$num."' value='".$row['away'.$num]."'></td></tr>";
}

$games[$num] .= "</form>";

您需要用表单标签包围您的输入,提交并将其发布到下一页,例如 afterSubmit.php。所以在 afterSubmit.php 页面中,你可以这样写:

for($num = 1; $num <= 9; $num++){
    if( isset( $_POST['game".$num."'] ) ){
        echo $_POST['game".$num."']; //echo the value
    }
}

【讨论】:

  • 我使用了表单标签,只是没有粘贴到这里。我想要的是每次用户单击主队单选按钮时,我都希望发生一些事情,所以这就是为什么我按照 if( isset( $_POST['game".$num."'] = '家..')
  • 属性操作的表单标签中的值是多少?它应该是$_SERVER['PHP_SELF'] 或它自己的页面名称。只需尝试将最后一个代码 sn-p 包装在if($_SERVER["REQUEST_METHOD"] == "POST") { // pasted the code here }
猜你喜欢
  • 2021-03-12
  • 1970-01-01
  • 2016-07-26
  • 1970-01-01
  • 1970-01-01
  • 2013-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多