Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    <option value ... <form method=post action=

    Ho un problema con <option value….. che non restituisce l'intero valore contenuto nel database di MySQl
    Queste le procedure :

    <? php
    <form method=post action=nomefile.php>
    <select name=\"Tipo\" size=\"1\">
    $nome_file_inc = "include/accessodatabase.php";
    if (file_exists("../".$nome_file_inc)) {
    include_once ("../".$nome_file_inc);
    }
    else {
    if (file_exists($nome_file_inc)) {
    include_once ($nome_file_inc);
    }
    }
    $sql = 'SELECT dby.NOMESEZ, dby.NAZ1 FROM dby WHERE dby.naz1="I " GROUP BY NOMESEZ ORDER BY NOMESEZ ASC';
    $result = mysql_query($sql, $global_db);
    $nresult=0;
    while ($ris = mysql_fetch_array($result)) {
    $res[$nresult]["NOMESEZ"] = $ris["NOMESEZ"];
    $res[$nresult]["NAZ1"] = $ris["NAZ1"];
    If ($res[$nresult]["NOMESEZ"]) {
    $nresult++;
    }
    }
    For ($i=0; $i<$nresult; $i++) {
    <option value=".$res[$i]["NOMESEZ"].">".$res[$i]["NOMESEZ"]."</option>
    }
    </select>
    </td>
    </tr>
    <tr><td width=\"100%\" height=\"1\" align=\"center\" bgcolor=\"#D4D4D4\">
    <input type=\"submit\" name=\"submit\" value=\"Avvio ricerca\">
    </td></tr>
    </form>
    ?>


    nomefile.php
    <? php
    $nomesezione = $_POST['Tipo'];
    $num = $_GET['id'];
    $nome_file_inc = "include/accessodatabase.php";
    if (file_exists("../".$nome_file_inc)) {
    include_once ("../".$nome_file_inc);
    }
    else {
    if (file_exists($nome_file_inc)) {
    include_once ($nome_file_inc);
    }
    }
    $sql = 'SELECT dby.ANNO, dby.NOMESEZ,dby.NAZ1,dbx.NUM FROM dby INNER JOIN dbx ON dby.NUM = dbx1.NUM GROUP BY dby.ANNO, dby.NOMESEZ, dby.NAZ1, dbx.NUM HAVING (((dby.NAZ1)="I ") AND ((dby.NOMESEZ)="'.$nomesezione.'"))';

    $result = mysql_query($sql, $global_db);
    $nresult=0;
    while ($ris = mysql_fetch_array($result)) {
    $res[$nresult]["ANNO"] = $ris["ANNO"];
    $res[$nresult]["NOMESEZ"] = $ris["NOMESEZ"];
    $res[$nresult]["NAZ1"] = $ris["NAZ1"];
    $res[$nresult]["NUM"] = trim ($ris["NUM"]);
    if ($res[$nresult]["ANNO"]) {
    $nresult++;
    }
    }
    ?>


    NON VIENE RESTITUITO IL VALORE COMPLETO DI “NOMESEZ”
    Esempi :
    “MILANO PARCO LAMBRO” VIENE TROVATO SOLO COME “MILANO”
    “REG. LOMBARDIA EST” VIENE TROVATO SOLO COME “REG.”
    “REG. LOMBARDIA OVEST” VIENE TROVATO SOLO COME “REG.”

    QUALE L’ISTRUZIONE CHE FA VEDERE IL CONTENUTO COMPLETO DI “NOMESEZ” IN :

    <option value=".$res[$i]["NOMESEZ"].">".$res[$i]["NOMESEZ"]."</option>
    E POI IN
    $nomesezione = $_POST['Tipo'];

  2. #2
    Ciao,
    scusa ma la tabella dby non ha una chiave che rede univoci i record (ad esempio ID come numerico auto_increment)?

    Se si allora devi estrapolare anche l'id e metterlo nel value della option:
    <option value=".$res[$i]["ID"].">".$res[$i]["NOMESEZ"]."</option>

    in modo tale che la form ti passi l'identificativo, per ricavarti la descrizione ti basta una query sql con la clausola WHERE ID=$valore.

    Ciao

  3. #3
    Originariamente inviato da datinho
    Ciao,
    scusa ma la tabella dby non ha una chiave che rede univoci i record (ad esempio ID come numerico auto_increment)?

    Se si allora devi estrapolare anche l'id e metterlo nel value della option:
    <option value=".$res[$i]["ID"].">".$res[$i]["NOMESEZ"]."</option>

    in modo tale che la form ti passi l'identificativo, per ricavarti la descrizione ti basta una query sql con la clausola WHERE ID=$valore.
    Ciao
    Il problema è un altro.
    Se io faccio cercare con
    <option value=".$res[$NOMESEZ].">"
    o con un'altra qualsiasi $variabile un dato che ricavo interogando il database
    questo dato viene visualizzato correttamente, ma quando lo passo con
    $nomesezione = $_POST['Tipo'];
    oppure con un altra
    $variabile = $_POST['Tipo']; che dovrebbe contenere quanto visualizzato prima
    il dato(variabile) viene troncato al primo spazio che trova
    e la querry di ricerca successiva non va a buon fine

  4. #4
    Ciao,
    forse non mi sono spiegato bene, il tuo problema non è generare dinamicamente la pagina della form, per cui nel value della option ti trovi il valore corretto, ma il problema è nel post della value.

    Questo però non c'entra con php ma con il limite dell'html stesso, visto che post e get sono metodi definiti dalle specifiche html.

    Per fare quello che vuoi dovresti converitre gli spazi in %20 quando generi le varie option values di NOMESEZ per avere a livello html:
    <option value="MILANO%20PARCO%20LAMBRO">

    per poi riconvertirli quando andrai a leggere il post della variabile, poichè in html lo spazio vuoto viene interpretato come fine (inatteso) del valore.

    Quindi per evitare di farti venir un mal di testa con gli spazi ti conviene visualizzare l'option con la sua descrizione ma passare all'interno del value il suo identificativo numerico.

    Ciao

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 © 2024 vBulletin Solutions, Inc. All rights reserved.