2016-07-05 23 views
2

我想在提交表單時獲取用逗號分隔的三個值。複選框,文本框1和文本框2的值。PHP-如何從選中的複選框和相應的文本框中獲取值

這是我的代碼,它從mysql數據庫中檢索值並生成複選框和兩個相應的文本框。

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
<?php 

$query = "SELECT * FROM subject"; 
$data = mysqli_query($con, $query); 

while ($row = mysqli_fetch_array($data)){ 
$s = $row['sub']; 
echo $s; 
?> 

<input type="checkbox" name="req_sub[]" value= "<?php echo $s; ?>" /> 
<input type="text" name="<?php echo $s; ?>" placeholder="Total Number" /> 
<input type="text" name="<?php echo $s; ?>" placeholder="Pass Number" />  

<?php 
} 
?> 
<input type="submit" name="submit" value="Add"> 
</form> 

This is how my form looks --

假設用戶檢查前三個盒子,並進入像這幅畫的價值 - enter image description here

當我點擊添加,我得到的價值 -
物理
數學
化學
通過使用下面的代碼:

<?php 
if (isset($_POST['submit'])) { 
    if (!empty($_POST['req_sub'])) { 
     foreach ($_POST['req_sub'] as $selected) { 
      echo $selected."</br>"; 
     } 
    } 
} 
?> 

但我如何獲取值像這 -
物理,40,30
數學,40,30
化學,30,25

我想在這個變量輸出,我可以將它存儲在我的數據庫表中。
在過去的幾天裏,我已經花了幾個小時。請幫助我這個。

回答

3
  1. 需要分配到<input type="text" ... />唯一的名稱,這樣你就可以在PHP收到它的價值。

  2. 其次,您需要編寫PHP代碼,即將這些值連接起來。

例如,您HTML代碼可能是:

<input type="checkbox" name="req_sub[]" value= "<?php echo $s; ?>" /> 
<input type="text" name="total[<?php echo $s; ?>]" placeholder="Total Number" /> 
<input type="text" name="pass[<?php echo $s; ?>]" placeholder="Pass Number" />  

和你PHP代碼可能是:

if (isset($_POST['submit'])) { 
    if (!empty($_POST['req_sub'])) { 
     foreach ($_POST['req_sub'] as $selected) { 
      $total = $_POST['total'][$selected]; 
      $pass = $_POST['pass'][$selected]; 
      $var = $selected . ',' . $total . ',' . $pass; 
      echo $var . '<br />'; 
     } 
    } 
} 
+0

它的工作就像一個魅力...謝謝你這麼多。 –

+1

@Sarar,歡迎您。順便說一句,如果你的'$ s'在從數據庫中獲取時可能包含一個雙引號,當你將它插入'html'時,你還需要通過'htmlspecialchars($ s)'將其轉義。所以,你會得到這樣的東西:'」/>' – spirit