2016-12-23 12 views
0

ラジオボタンの選択に基づいてドロップダウンリストが生成されるフォームを作成しています。ラジオボタンジャーナルを選択した場合ラジオボタンの選択に基づくフィルタレコード

Form image

ジャーナル名は、ジャーナルタイプのフィルタが1になり、1または2のようなタイプのテーブルに格納され、その他のためには、私が使用している2となりますフォームを生成するコードを次に示します。

<?php 
    $ctype = 1 // $ctype created for filtering purpose 
?> 

<p> Article For: 
    Journal <input type="radio" name="article_for" value="Journal" id="article_journal" /> 
    Conference <input type="radio" name="article_for" value="Conference" id="article_conference" /> 
</p> 

<?php 
    // $ctype will depend upon selection from radio button. If selection is "Journal" 
    // value of $ctype to set 1 otherwise to set 2. 
    $selectrecord = "SELECT `content_id`, `content_type`, `content_name` FROM `content` where `content_type` = $ctype"; 
    $result = mysqli_query($connection,$selectrecord) or die(mysqli_error($connection)); 
?> 

<p> Journal Name: 
    <select name='content_id'> 
     <?php 
      while ($row = $result->fetch_assoc()) { 
       unset($id, $name); 
       $id = $row['content_id']; 
       $name = $row['content_name']; 
       echo '<option value="'.$id.'">' . $name . '</option>'; 
      } 
     ?> 
    </select> 
</p> 

私は

if(document.getElementById('article_journal').checked) { 

のように設定されたコードを選択したラジオボタンをチェックすることができます。しかし、このif節では、私は、変数$ CTYPEに値を割り当てることはできません - フィルターに使用されていますドロップダウンリストの名前

私が間違っていることを見つけるのを助けてください。

よろしくお願いいたします。

+0

javascriptはクライアントサイドのみであり、PHPサーバー側であるため、そうすることはできません。あなたが探しているものは__ajax__です。または、フォームを送信してページをリロードして、一致する値を取得することもできます(簡単ですが、ユーザーフレンドリーではありません)。 – Jeff

+1

ありがとう@ジェフ、私は正しい方法で考えていないかもしれないので、私にも来た。手がかりをありがとう。 –

+0

ラジオが変更されたときにajaxコールを開始するのが最善の方法です。選択した値でPHPスクリプトを呼び出し、php-scriptで目的のリストを生成し、ajax-successコールバックでそれを受け取り、htmlに挿入します。 – Jeff

答えて

0

最後に、関連するフィールドが物理的にかなり離れた場所にある複数のページを作成することにしました。 POST変数がこの問題を解決しました。それらが互いに隣接しているところでは、jQueryを使用してオプションをフィルタリングしました。

+0

私の問題は解決しましたが、私はこの問題を「解決済み」とする方法を知らない。 –

関連する問題