【问题标题】:PHP Radio button grab two valuesPHP单选按钮抓取两个值
【发布时间】:2014-05-14 10:50:45
【问题描述】:

所以下面的代码从用户选择的行中获取 server_id。但是,我想知道是否可以从行中获取 server_id 和 server_name ,而用户不必比他已经做的更多(选择单选按钮并推送提交)。感谢您的帮助。

<form method="post" name="server_information" id="server_information" action="test.php">
<label>Server Information</label><br><br>
<table border='1'>
    <tr>
        <th>Selection</th>
        <th>User Name</th>
        <th>Date Created</th>
        <th>Server Name</th>
        <th>Server Id</th>
        <th>Public DNS</th>
        <th>Server Status</th>
    </tr>
    <?php while($row = mysql_fetch_assoc($result)): ?>
    <tr>
        <td><input type="radio" name="server" value="<?php echo $row['serverId']; ?>" /></td>
        <td><?php echo $row['userName']; ?></td>
        <td><?php echo $row['dateCreated']; ?></td>
        <td><?php echo $row['serverName']; ?>"</td>
        <td><?php echo $row['serverId']; ?></td>
        <td><?php echo $row['publicDNS'] ?></td>
        <td><?php echo $row['serverStatus']; ?></td>
    </tr>
    <?php endwhile; ?>
</table>
<br>
<?php endif; ?>

<input type="submit" name="server_stop" value="Stop Server"/>
<input type="submit" name="server_terminate" value="Terminate Server"/>
</form>

【问题讨论】:

    标签: php mysql forms post radio-button


    【解决方案1】:

    您可以将管道| 或任何其他字符连接到单选值中,然后在管道上展开您的 $_POST['server'],您将在索引 0 中获得 id,在索引 1 中获得名称。

    <td><input type="radio" name="server" value="<?php echo $row['serverId'].'|'.$row['serverName']; ?>" /></td>
    

    另一种解决方案是添加一个隐藏输入并使用服务器 ID 命名,如下所示:

    <td>
    <input type="radio" name="server" value="<?php echo $row['serverId']; ?>" />
    <input type="hidden" name="name_<?php echo $row['serverId'];?>" value="<?php echo $row['serverName'];?>" />
    </td>
    

    然后在 PHP 中

      $server_id=(int)$_POST['server'];
      $server_name=$_POST['name_'.$server_id];
    

    【讨论】:

      【解决方案2】:

      你可以使用数组:

      name="server[$row['serverId']]" value="$row['serverName']"
      

      然后得到它:

      list($id, $name) = $_POST['server'];
      

      【讨论】:

        【解决方案3】:

        当然,只需用逗号(或其他不会出现在值中的分隔符)连接两个值:

        <tr>
            <td><input type="radio" name="server" 
                       value="<?php echo $row['serverId'] . ',' . $row['serverName']; ?>" /></td>
            <td><?php echo $row['userName']; ?></td>
            <td><?php echo $row['dateCreated']; ?></td>
            <td><?php echo $row['serverName']; ?>"</td>
            <td><?php echo $row['serverId']; ?></td>
            <td><?php echo $row['publicDNS'] ?></td>
            <td><?php echo $row['serverStatus']; ?></td>
        </tr>
        

        然后在处理表单时使用explode() 分隔结果:

        $server_info = explode(",", $_POST["server"]); // server_info is an array
        $server_selection = $server_info[0];
        $server_name      = $server_info[1];
        

        【讨论】:

        • 好的,谢谢您的建议。但是,我以前从未使用过explode。我将 server_id 分配给进程脚本“server_selection=$_POST['server']”中的一个变量,如果您可以提供有关如何使用explode 执行此操作的建议,那么我就有两个变量。一个id一个名字,我会很感激的
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多