2016-12-23 9 views
0

Ich erstelle ein Formular, wo eine Dropdown-Liste basierend auf der Auswahl eines Radio-Button generiert wird.Filter Datensätze basierend auf Radiobutton Auswahl

Form image

Journal Namen werden in einer Tabelle mit Typ wie 1 oder 2. Wenn das Optionsfeld Journal gewählt wird gespeichert, Filter für Typ-journal 1 sein wird, und für die anderen wird es 2 sein Ich benutze folgender Code zum Generieren des Formulars

<?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> 

kann ich das ausgewählte Optionsfeld mit einem Code eingestellt wie

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

Aber in diesem if-Klausel, kann ich keinen Wert auf den Variable $ ctype zuweisen - die verwendet wird, um zu filtern die Namen für die Dropdown-Liste.

Bitte helfen Sie mir herauszufinden, was ich falsch mache.

Mit freundlichen Grüßen.

+0

Dies ist nicht möglich, weil Javascript nur auf der Client-Seite steht, nur auf der Seite des PHP-Servers. Was Sie suchen, ist __ajax__. Oder Sie können das Formular senden und die Seite neu laden, um die passenden Werte zu erhalten (einfacher, aber nicht so benutzerfreundlich). – Jeff

+1

Danke @Jeff, es kam auch zu mir, da ich vielleicht nicht richtig denke. Danke für den Hinweis. –

+0

Am besten starten Sie einen Ajax-Anruf, wenn sich eines der Funkgeräte ändert. Rufen Sie ein php-Skript mit dem ausgewählten Wert auf, generieren Sie die gewünschte Liste in php-script und erhalten Sie diese in Ajax-success Callback, dann fügen Sie sie in html ein. – Jeff

Antwort

0

Schließlich entschied ich mich, mehrere Seiten zu erstellen, wo verwandte Felder physisch in der Form ziemlich weit entfernt sind. POST-Variablen haben das Problem gelöst. Wo sie nebeneinander liegen, habe ich jQuery verwendet, um die Optionen zu filtern.

+0

Mein Problem ist gelöst, aber ich weiß nicht, wie ich diese Frage als "Gelöst" markieren soll. –

Verwandte Themen