簡體   English   中英

用於更改可見性的 Javascript 和 PHP 單選按鈕

[英]Javascript and PHP radio buttons to change visibility

我正在努力解決問題。 它分為兩部分:

  1. 我想創建一個循環,從數據庫中讀出我的每個頁面的 menu_name 並在讀出它的同一行上,放置一個單選按鈕來更改可見性。 到目前為止,看起來我的單選按鈕都已連接,因為(不是為每個按鈕都選中“否”,而是僅在最后一個<li>項目上選中“否”:

     //K's function: function get_all_pages() { global $connection; $query = "SELECT * FROM pages "; $query .= "WHERE visible = 1 "; $query .= "ORDER BY position ASC"; $page_set = mysql_query($query, $connection); confirm_query($page_set); return $page_set; } //K's function: function list_all_pages(){ $output = "<ul>"; $page_set = get_all_pages(); while ($page = mysql_fetch_array($page_set)) { $output .= "<li><a href=\\"add_feature.php?page=" . urlencode($page["id"]) . "\\">{$page["menu_name"]}</a></li>"; $output .= "&nbsp;&nbsp;<input type=\\"radio\\" name=\\"visible\\" value=\\"0\\" checked=\\"checked\\" /> No <input type=\\"radio\\" name=\\"visible\\" value=\\"1\\" /> Yes"; } $output .= "</ul>"; return $output; } 

問題 #1 的圖片

  1. 我正在嘗試用 Javascript 做某種 ajax 事情..所以我希望可見的單選按鈕在我動態生成的菜單列表旁邊。 我希望它們都被檢查為否......當他們被檢查為是時,我希望出現一個下拉列表,他們可以在其中選擇數字 1-8(數字將表示它們將出現在什么位置)。

我是新手,如果沒有 Javascript 和 php/mysql 專家的幫助,我試圖弄清楚這一點有點遙不可及。

您的單選按鈕都具有相同的“名稱”屬性,因此您一次只能選擇一個。 您可以將一些唯一標識符附加到屬性值。 例如, visible_{$page_id}

function list_all_pages(){
    $output = "<ul>";
    $page_set = get_all_pages();
    while ($page = mysql_fetch_array($page_set)) {
        $page_id = urlencode($page["id"]);
        $output .= "<li><a href=\"add_feature.php?page={$page_id}\">{$page["menu_name"]}</a></li>";
        $output .= "&nbsp;&nbsp;<input type=\"radio\" name=\"visible_{$page_id}\" value=\"0\" checked=\"checked\" /> ";
        $output .= "No <input type=\"radio\" name=\"visible_{$page_id}\" value=\"1\" /> Yes";
    }
    $output .= "</ul>";
    return $output;
}

高級提示:使用 PHP,您可以通過使用特殊格式的輸入名稱來簡化“頁面”數據的處理——如下所示:

  • 讓單選按鈕使用pages[$page_id][visible]
  • 讓列表(又名select )使用pages[$page_id][order]

一旦用戶提交此數據,PHP 會將其轉換為“pages”數組(索引為 page_id 的)。 然后,您可以執行以下操作:

function process_pages($pages) {
  foreach ($pages as $page_id => $data) {
     $is_visible = $data['visible'] === '1';
     $page_order = (int) $data['order'];
     //... update page's visibility/page order
  }
}
$pages = $_REQUEST['pages'];
process_pages($pages);

1. 更改每個單選按鈕的名稱屬性以斷開它們的連接,例如使用visible1、visible2、...

2. 將 <input> 標簽放在 <li> 內的 <a> 標簽之后。 這將在動態生成的菜單旁邊顯示您的單選按鈕。

3. 您可以通過創建和調用一個 javascript 函數來創建數字選擇列表,該函數將通過單擊 Yes 選項執行,該函數將創建並顯示選擇字段。

如果您需要更多說明,請對答案發表評論。

暫無
暫無

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

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