2017-08-30 59 views
0

我有一個單選按鈕,它使用一個保存字符串值的foreach循環從數據庫中獲取並顯示。我設置了另一個隱藏的輸入以及保存每個數據的ID的單選按鈕。獲取單選按鈕的隱藏輸入

$sql = "SELECT DISTINCT(class) FROM program WHERE level = '".$level."' AND title = '".$title."'"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    $i = 1; 
    while($row = $result->fetch_assoc()) { 
     echo '<ul>'; 
     echo '<li>'; 
     echo $row['class']; 
     echo '<input type="hidden" value="'.$row['class'].'"'; 
     echo '</li>'; 
     echo '<li>'; 
     echo '<ul><li><input name="timeslot['.$i.']" type="radio" value="" checked>N/A</li></ul>'; 

     $sql2 = 'SELECT * FROM program WHERE class = "'.$row['class'].'"'; 
     $result2 = $conn->query($sql2); 

     if ($result->num_rows > 0) { 
      while($row2 = $result2->fetch_assoc()) { 
       echo '<ul>'; 
       echo '<li>'; 
       echo '<input name="timeslot['.$i.']" type="radio" value="'.$row['class'].', '.$row2['timeslot'].'" />'.$row2['timeslot']; 
       echo '<input type="hidden" name="slot_id['.$i.']" value="'.$row2['id'].'"'; 
       echo '</li>'; 
       echo '</ul>'; 
      } 
     } 

     echo '</li>'; 
     echo '</ul>'; 
     $i++; 
    } 
} 

當提交表單時,我的隱藏值總是得到每個組的最後一行。如何在選中的單選按鈕上獲取id值?

+0

當建立一個SQL查詢時,你應該綁定變量,而不是隻是串聯一個字符串。你在做什麼可能會受到攻擊。請參閱https://stackoverflow.com/questions/1860130/how-to-bind-sql-variables-in-php – ivo

回答

0

您並未關閉輸入隱藏字段。

此外,我會建議改變這種方式,而不是收音機和隱藏,如果你不需要每個ID在服務器。

echo '<input name="timeslot['.$row2['id'].']" type="radio" value="'.$row['class'].', '.$row2['timeslot'].'" />'.$row2['timeslot'];