簡體   English   中英

我如何獲得從數據庫獲取所有值並作為復選框工作的輸出的php語句? (PHP / MySQL)

[英]How do I get this php statement that gets all the values from database and outputs as checkboxes to work? (PHP/Mysql)

我對所有這些“”,“”和“”都迷失了。 在此聲明中。 基本上,此查詢是從“標簽”表中獲取所有標簽名,並以復選框的形式顯示給用戶。 如果他們單擊了“提交”並且錯過了另一個字段(例如帖子的標題),則仍然會顯示他們選擇的標簽。 我需要幫助的部分是回聲部分。 當他們單擊提交時,似乎不記得該標記。

      $query4 = "SELECT * FROM tags  ORDER BY tagname";
  $data4 = mysqli_query($dbc, $query4);
  while ($row4 = mysqli_fetch_array($data4)) 
  {
  echo "<li><input type='checkbox' name='postingtag[]'";
  if (!empty($postingtag)){
   echo "value='$postingtag'";
  }
  else{
   echo "value='{$row4['tagID']}'";
  }
  echo ">{$row4['tagname']}</li>";
  }

嘗試這個:

$query4 = "SELECT * FROM tags  ORDER BY tagname";
$data4 = mysqli_query($dbc, $query4);
while ($row4 = mysqli_fetch_array($data4)) {

 echo "<li><input type='checkbox' name='postingtag[{$row4['tagID']}]' value='1'";

 if (isset($postingtag[$row4['tagID']]))
  echo " checked='checked'";

 echo "/> {$row4['tagname']}</li>";
}

$postingtag將是一個數組,其中將填充已檢查的標簽。 通過向$postingtag數組添加可辨別的索引,您將能夠檢查其是否已填充,然后可以相應地設置checked屬性。

為了確定用戶是否選中了表單提交中的某個復選框,您需要測試該復選框是否已提交。 您會看到,瀏覽器僅在選中該復選框的情況下發送該復選框的值,否則您什么也不會收到。 因此,為了對此進行測試,您需要一種在提交的參數中唯一標識此復選框的方法。 在這種情況下(以及大多數其他情況,如果不是所有其他情況),執行此操作的最可靠方法是將唯一標簽ID包含為復選框名稱的鍵,如下所示:

... <li><input type="checkbox" name="postingtag[' . $row4[ 'tagID' ] . ']" ...

然后在提交測試中使用:

$checked = isset( $_POST[ 'postingtag' ][ $row4[ 'tagID' ] ] ) ? ' checked="checked"' : '';

將所有內容放在一起,您將得到以下內容:

$checked = isset( $_POST[ 'postingtag' ][ $row4[ 'tagID' ] ] ) ? ' checked="checked"' : '';
$checkbox = '<li><input type="checkbox" name="postingtag[' . $row4[ 'tagID' ] . ']"' . $checked . '>' . $row4['tagname'] . '</li>';

暫無
暫無

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

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