Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Używanie PHP i MySQL do wypełniania listy rozwijanej

Jak powiedzieli inni członkowie, powinieneś używać PDO (z przygotowanymi oświadczeniami) zamiast mysql_.

Jedna możliwa implementacja:

HTML (form.php)

<select name="list1" id="list1">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>

<select name="list2" id="list2"></select>

<script type="text/javascript">
$("#list1").change(function() {
    $.ajax({
        url : "get_list2.php?id=" + $(this).val(),                          
        type: 'GET',                   
        dataType:'json',                   
        success : function(data) {  
            if (data.success) {
                $('#list2').html(data.options);
            }
            else {
                // Handle error
            }
        }
    });
});
</script>

PHP (get_list2.php)

require_once("config.php");

$id = $_GET['id'];

if (!isset($id) || !is_numeric($id))
    $reponse = array('success' => FALSE);
else {
    // Where $db is a instance of PDO

    $query = $db->prepare("SELECT * FROM mytable WHERE id = :id");
    $query->execute(array(':id' => $id));
    $rows = $query->fetchAll(PDO::FETCH_ASSOC);

    $options = "";
    foreach ($rows as $row) {
        $options .= '<option value="'. $row .'">'. $row .'</option>';
    }

    $response = array(
        'success' => TRUE,
        'options' => $options
    );
}

header('Content-Type: application/json');
echo json_encode($response);

PS:nie testowane, ale powinno działać... chyba.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wysyłanie zapytań do wielu baz danych jednocześnie

  2. Pobierz wszystkie wiadomości i wszystkie komentarze

  3. 3 sposoby na „odheksowanie” ciągu w MySQL

  4. Pobieranie liczby wierszy z określoną wartością po przefiltrowaniu zapytania przez selektor daty

  5. Dobry projekt bazy danych, zmienna liczba atrybutów