Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    225

    sto affogando in bicchiere d acqua

    Salve a tutti,

    ho un problema un semplice script php , è incredibile di quanto sia facile rimanere fermi 2 giorni su di una cavolata, incollo un po di codice senza parlare tanto :

    Codice PHP:
    if ($_GET['tipodoc'] != $_SESSION['tipodoc']) { $_GET['doc'] = ""$_SESSION['tipodoc'] = $_GET['tipodoc']; }
    if (
    $_GET['doc'] != $_SESSION['doc']) { $_GET['causa'] = ""$_SESSION['doc'] = $_GET['doc']; }

    echo 
    $_SESSION['tipodoc']."
    "
    ;
    echo 
    $_SESSION['doc']."
    "
    ;

    $qry_tdoc  mysql_query("SELECT * FROM tipodoc WHERE cod_doc = '".$_GET['tipodoc']."'");
    $qry_causa  mysql_query("SELECT * FROM causali WHERE cod_tipodoc = '".$_GET['doc']."'");
    ?> 
    Ho tre select e ovviamente passo i paramentri per la ricerca nel db tramite la form

    Codice PHP:
    <form name="form" action="sel-doc.php" method="get">

    <select name="tipodoc" size="8" onchange="submit();" style="width: 200">

    <option <?PHP if ($_GET['tipodoc'] == "ORD") { echo "selected"; } ?> value="ORD">ORDINE</option>
    <option <?PHP if ($_GET['tipodoc'] == "FAT") { echo "selected"; } ?> value="FAT">FATTURA</option>
    </select> 

    <select name="doc" size="8" onchange="submit();" style="width: 200">
    <?PHP 

    while($row mysql_fetch_array($qry_tdoc))
     {        
     ====>>>>  if (
    $_GET['doc'] == $row['cod_tipodoc'] ) { $chk_tipodoc "selected"; } <<<=====
            echo 
    "<option $chk_tipodoc value=\"$row[cod_tipodoc]\">$row[cod_tipodoc] --- $chk_tipodoc ---- $row[testo_tipodoc]</option>"
     };

    ?>
    </select>

     <select size="8" name="causa" style="width: 200" onchange="submit();">
    <?PHP 
    if (isset($_GET['doc'] )) {
    while(
    $row2 mysql_fetch_array($qry_causa))
     { 
             if (
    $_GET['causa'] == $row2['id_causale']) { $chk_causa "selected"; } 
            echo 
    "<option $chk_causa value=\"$row2[id_causale]\">$row2[testo_causale]</option>"
     };
    }
    l' inghippo sta nel fatto che nella select1 con i controlli riesco a far rimanere selezionato il valore anche dopo il submit, mentre nella select2 mi rimane selezionato solo l' ultima option della lista, come vedete io stampo nella option i valori dei dati ma il controllo IF sembra non funzionare ...... continua a selezionare l' ultima delle option, in presenza di una solo option (ovviemente) rimane selezionato :-P


    GRAZIE A TUTTI

    SAT

  2. #2

  3. #3
    Ciao

    consigli:

    1) non scrivere <?PHP ma <?php
    2) non fare
    Codice PHP:
    echo "<option $chk_tipodoc value=\"$row[cod_tipodoc]\">$row[cod_tipodoc] 
    ma
    Codice PHP:
    echo "<option $chk_tipodoc value=\"".$row["cod_tipodoc"]."\">..... 
    fai fare meno lavoro al parser

    3) metti i valori presi da $_GET, $_POST, $_REQUEST in variabili, non so perche ma, a me, hanno sempre dato problemi (forse sono io ?!? )
    4) per quanto riguarda il tuo problema ti consiglio un debug

    Codice PHP:
    $i 0;
    while(
    $row mysql_fetch_array($qry_tdoc))
    {        
      if (
    $_GET['doc'] == $row['cod_tipodoc'] ) { $chk_tipodoc "selected"; }
            echo 
    "<option $chk_tipodoc value=\"$row[cod_tipodoc]\">$row[cod_tipodoc] --- $chk_tipodoc ---- $row[testo_tipodoc]</option>";

    echo 
    "#$i \$_GET=".$_GET["doc"]." - \$row=".$row["cod_tipodoc"];

    }; 
    forse cosi dovresti trovare un errore o una discordanza tra le due stringhe


    spero risolverai altrimenti ci trovi qui
    Perchè essere stupidi non è una menomazione ma un diritto di tutti!!!

  4. #4
    Il titolo della discussione non rispetta il regolamento
    Addio Aldo, amico mio... [03/12/70 - 16/08/03]

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.