2016-12-23 114 views
0

我正在創建一個表單,根據單選按鈕的選擇生成下拉列表。基於單選按鈕選擇篩選記錄

Form image

雜誌名稱被存儲在與類型1或2的表當選擇了單選按鈕雜誌,對於軸頸型過濾器將是1且用於另一這將是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

謝謝@Jeff,它也來到了我的身邊,因爲我可能沒有以正確的方式思考。感謝您的線索。 –

+0

所以最好的方法是當無線電之一發生變化時啓動ajax調用。使用所選值調用php腳本,在php-script中生成所需的列表,並在ajax-success回調中接收該列表,然後插入到html中。 – Jeff

回答

0

最後,我決定創建多個頁面,其中相關字段的物理位置相當遠。 POST變量解決了這個問題。在他們相鄰的地方,我使用jQuery來過濾選項。

+0

我的問題已解決,但我不知道如何將此問題標記爲「已解決」。 –