在php中提交单选按钮变量

时间:2016-07-17 09:08:21

标签: javascript php jquery css forms

我正在编写一个程序,该程序将显示一个班级的学生列表,并且在每个学生姓名前面有三个用于缺席,出席和休假的单选按钮。

使用while循环生成学生列表。现在我想通过这样的变量传递单选按钮的值。

echo "<tr>"
   . "<td>$id</td>"
   . "<td>$name</td>"
   . "<td><input type=radio name=$name value=P></td>"
   . "<td><input type=radio value=L name=$name></td>"
   . "<td><input type=radio name=$name value=A></td>"
   . "</tr>";

这样可以发送单选按钮的值吗?

3 个答案:

答案 0 :(得分:3)

是的,但请注意您的输入属性应该有单/双引号。

echo "<input type=radio name='$name' value='p' />";

或者你可以像这样转义双引号

echo "<input type=radio name=\"$name\" value=\"P\">";

或连接php变量

echo '<input type=radio name="'.$name.'" value="P">";

<强>更新 检查每个学生的个人资料

  1. 在while循环中创建一个数组名称。 数组名称是这样的,它在字符串&#39;出勤后的方括号

    <input name="attendance[]" />
    
  2. 现在,为每个学生排。在数组名称中分配学生ID。

    echo "<tr>"
    . "<td>".$id."</td>"
    . "<td>".$name."</td>"
    . "<td><input type='radio' name='attendance[".$id."]' value='P'></td>"
    . "<td><input type='radio' name='attendance[".$id."]' value='L'></td>"
    . "<td><input type='radio' name='attendance[".$id."]' value='A'></td>"
    . "</tr>";
    
  3. 将$ id放在数组名称中作为指针,在后端使用它来更新每个学生的出勤状态。

    foreach ($_POST['attendance'] as $key => $value) {
    //$_POST['attendance'] variable is an array.
    //Where $key variable is your Student ID, use this to update their status
    //Where $value is a student's selected attendance status.
    
      echo 'Student ID:'. $key . ' is '. $value . '<br>';
      //Update a student's attendance status using $key as their id.
    }
    
  4. 您还可以模拟我制作的代码:http://viper-7.com/Tb1lbo

答案 1 :(得分:0)

是的,这是可能的。代码:

<?php

$students = [
    [
        'id' => '1',
        'name' => 'Amy'
    ],
    [
        'id' => '2',
        'name' => 'Bob'
    ],
    [
        'id' => '3',
        'name' => 'Charlie'
    ]    
];

echo 
'<form action="' . $_SERVER['PHP_SELF'] . '" method="post">' .
'<table>' .
'   <thead>' .
'       <tr>' .
'           <th>Student Id</th>' .
'           <th>Student Name</th>' .
'           <th>Attendance (P / L / A)</th>' .
'       </tr>' .
'   </thead>' .
'       <tbody>';

foreach ($students as $student) {
    echo 
    '       <tr>' .
    '           <td>' . $student['id'] . '</td>' .
    '           <td>' . $student['name'] . '</td>' .
    '           <td>' .
    '               <input type="radio" name="attendance_' . $student['id'] . '" value="P" />' .
    '               <input type="radio" name="attendance_' . $student['id'] . '" value="L" />' .
    '               <input type="radio" name="attendance_' . $student['id'] . '" value="A" />' .
    '           </td>' .
    '       </tr>';
}

echo
'       <tr>' .
'           <td colspan="3">' .
'               <input type="submit" name="submit" value="Attendance" />' .
'           </td>' .
'       </tr>' .
'   </tbody>' .
'</table>' .
'</form>';

if (isset($_POST['submit'])) {
    echo '<pre>' . print_r($_POST, true) . '</pre>';
}

表格提交:

Array
(
    [attendance_1] => P
    [attendance_2] => L
    [attendance_3] => L
    [submit] => Attendance
)

答案 2 :(得分:0)

首先,您需要在名称周围加上单引号或双引号,如下所示:

<tr><td>$id</td><td>$name</td><td><input type='radio' name='$name' value='P'></td><td><input type='radio' value='L' name='$name'></td><td><input type='radio' name='$name' value='A'></td></tr>";

然后,您可以使用单选按钮组的名称来获取$_POST$_GET超级全局的值,具体取决于您的请求类型。

$name = 'name_of_the_radios'
$studentPresence = $_POST[$name] //For get requests use $_GET
if($studentPresence == 'P')
{
    //Student is present
}
else if($studentPresence == 'A')
{
    //Student is absent
}
else if($studentPresence == 'L')
{
    //Student is on leave
}
else
{
    throw new Exception("Invalid student presence argument');
}