Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Creazione a cascata di menu a tendina SELECT

    Ciao ragazzi

    Sto provando a fare una semplice cosa: una selezione di 4 menu a tendina (i famosi SELECT in HTML) per permettere all'utente di selezionare nazione/regione/provincia/città.

    In base alla scelta fatta su "nazione" avrò una determinata lista di "regioni" e così via...

    Stavo seguendo questo tutorial
    http://sviluppare-in-rete.blogspot.c...dinamiche.html
    ma non riesco a venirne a capo!

    Anche se metto i miei dati di connessione al database e metto i giusti nomi dei campi e della tabella non riesco a visualizzare nessun valore dentro i SELECT.

    Qualcuno sa aiutarmi?
    Ho cercato anche altri tutorial ma fanno tutti uso di JS o di altri linguaggi a me purtroppo sconosciuti!

    Mi farebbe piacere se qualcuno mi aiutasse a risolvere la cosa

    Grazie a tutti

  2. #2
    Così è difficile darti qualche aiuto...

    Potrebbe essere qualsiasi cosa..

    Posta un pezzo di codice...o controlla se effettivamente la connessione al DB avviene e se la query viene eseguita correttamente!

  3. #3
    Sono un pò ignorante

    Eccovi la pagina REQUEST.PHP che trovate anche nel link di esempio.

    codice:
    <?php
    require 'dbconfig.php';
    $conn = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die;
    mysql_select_db(DB_NAME) or die;
    //I valori in input vanno verificati
    //id deve essere un valore numerico
    $pid = (int)$_REQUEST['id'];
    //maschera  eventuali caratteri speciali in table 
    $tb = mysql_real_escape_string($_REQUEST['table'], $conn);
    
    switch($tb) {
    	case 'regioni':
    		$sql="SELECT id, nome FROM `$tb` ORDER BY nome";
    		break;
    	case 'province':
    		$sql="SELECT id, nome FROM `$tb` WHERE id_regione=$pid ORDER BY nome";
    		break;
    }
    //Il primo elemento della risposta è il nome della tabella (= attributo ID del tag select)
    $out="$tb;";
    if($result = mysql_query($sql, $conn)) {
    	while ($row = mysql_fetch_row($result)) {
    		$out .= $row[0] . '|' . $row[1] . ';';
    	}
    }
    //Rimuove il carattere ; in coda
    echo rtrim($out, ';');
    ?>
    Non capisco una cosa: alla riga $tb = mysql_real_escape_string($_REQUEST['table'], $conn); cos'è quel "table"?

    So che la mia domanda può sembrare stupida e da ignoranti ma abbiate pietà di me siate buoni

  4. #4
    Da qualche parte, sulla parte HTML, verrà inviata a request.php una variabile table, che in pratica contiene sicuramente la tabella dal quale leggere le nazioni, regioni,provincie, comuni

  5. #5
    Originariamente inviato da Samleo
    Da qualche parte, sulla parte HTML, verrà inviata a request.php una variabile table, che in pratica contiene sicuramente la tabella dal quale leggere le nazioni, regioni,provincie, comuni
    Questa è la parte HTML
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Esempio liste di selezione in cascata</title>
    <script type="text/javascript" src="lists.js"></script>
    <style type="text/css">
    body {
    	font-family: verdana, sans-serif;
    	font-size: 9pt;
    }
    select {
    	width: 200px;
    	margin: 5px 0;
    }
    fieldset {
    	border: 1px solid #d0d0d0;
    	padding: 5px;
    	width: 220px;
    }
    </style>
    </head>
    <body>
    <form action="index.html" method="post">
    <fieldset>
    <label for="regioni">Regioni</label>
    
    <select name="regioni" id="regioni" onchange="loadList('province', getSelected(this))" >
    </select>
    
    <label for="province">Province</label>
    
    <select name="province" id="province">
    </select>
    
    <input type="submit" name="submit" value="Invia" />
    </fieldset>
    </form>
    
    <script type="text/javascript">
    //<![CDATA[
    loadList('regioni', 0);
    //]]>
    </script>
    </body>
    </html>

    Come vedi non c'è nessuna variabile "table"... :master:

  6. #6
    Sarà sicuramente nel file lists.js

  7. #7
    Infatti manca il listato di "lists.js", ti conviene riscrivere tutto da capo in PHP con le chiamate al database e limitare javaScript a quando esegui i cambiamenti della lista.
    Prova ad impostare un codice PHP tu e poi vediamo!

    $_REQUEST['table'] lo trovi quì:

    http://php.net/manual/en/reserved.variables.request.php

    PHP è un universo, devi assolitamente utilizzare un manuale on-line.

  8. #8
    Ringrazio a tutti per l'aiuto ma ho comunque optato per un'altra strada

    Alla prossima

  9. #9
    Hai fatto bene, non è che era scritto benissimo questo che hai trovato

    Giusto per sapere, e magari può servire anche a qualcun altro..che strada hai preso?

  10. #10
    Si sono curioso anch'io.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.