1

私は問題を解決しようとしています。それは2つの部分です:

  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の専門家の助けがなければ私の手の届かないところにあります。

4

2 に答える 2

2

ラジオボタンはすべて同じ「名前」属性を持っているため、一度に1つしか選択できません。属性値に一意の識別子を追加できます。例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);
于 2012-08-22T19:47:03.963 に答える
0

1.各ラジオボタンのname属性を変更して、それらを切断します。たとえば、visible1、visible2、...を使用します。

2.<input>タグを<a>タグの後の<li>内に配置します。これにより、動的に生成されたメニューの横にラジオボタンが表示されます。

3. [はい]オプションをクリックして実行されるjavascript関数を作成して呼び出すことにより、番号の選択リストを作成できます。これにより、選択フィールドが作成および表示されます。

さらに明確にする必要がある場合は、回答にコメントしてください。

于 2012-08-22T20:01:10.813 に答える