簡體   English   中英

一個字符串中的 POST 數組,以逗號分隔 PHP

[英]An array of POST in one string separated by a comma PHP

我從復選框中創建了一個表單,我希望所有選中的復選框都作為一個變量顯示(最終保存到 MySQL)。

在表單中顯示復選框的代碼(工作正常):

...
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "<div class='form-check'>";
        echo "<label class='form-check-label'>";
        echo "<input class='form-check-input' name='prog[]' type='checkbox' value='".$row['name']."'>";
        echo "<span class='checkbox-icon'></span>";
        echo "<span class='form-check-description'>".$row['name']."</span>";
        echo "</label>";
        echo "</div>";
    }
}
...

在這里我從輸入的復選框中顯示數組:

...
$N = count($_POST['prog']);
for($i=0; $i < $N; $i++){
    echo "<div class='input-group input-group-sm mb-3'>
          <input name='programnames[]' value='".$_POST['prog'][$i]."' class='form-control' aria-label='Small' aria-describedby='inputGroup-sizing-sm' readonly>
          </div>";
}
...

問題是我在單獨的輸入框中看到了值。 最終,我想實現一個字符串(變量)。 用逗號分隔的值,例如: (TextBox1.Val), (TextBox2.Val)

所以如果我選擇TomatoCucumber我想在變量中加入: Tomato, Cucumber

prog應該是一個arraynull ,所以你應該能夠內它:

// Make sure we have an array, even if the data wasn't sent
$progChoices = $_POST['prog'] ?? [];
$joinedChoices = implode(',', $progChoices);

然后,您可以按原樣echo您的 HTML:

echo "<div class='input-group input-group-sm mb-3'>
      <input name='programnames' value='".$joinedChoices."' class='form-control' aria-label='Small' aria-describedby='inputGroup-sizing-sm' readonly>
      </div>";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM