Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    21

    iframe+interrogazione DB PHP

    salve a tutti, il mio problema è che non riesco ad usare i dati di un opzione della <select> restituiti da una query eseguita con un programma PHP in base ai dati inseriti nel form (nel caso specifico il campo si chiama "num_impegno").Immaginate un esempio del tipo "inserisco la regione e restituisco le province per la regione selezionata".

    Dal codice sorgente della pagina, dopo avere eseguito la query, non viene generato il codice HTML con la select aggiornata dei dati restituiti, e infatti dalla console degli errori FF ritorna che il campo è NULL.

    il programma PHP viene eseguito in un iframe presente nella pagina dove c'è il form.
    La strategia adottata è quella di sostituire l'intero codice HTML della <select> nel form con quella aggiornata.
    Riporto il codice:

    [pagina con il form]
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=windows-1250">
    <script type="text/javascript" src="/javascript/utility.js">
    </script>
    <script type="text/javascript">
    var data=new Array(3);

    function check_data(id_data)
    {
    d=document.getElementById(id_data);
    //alert(d.id);
    switch (d.id)
    {
    case "gg_comm":
    data[0]=d.value;
    if(parseInt(data[0])<1||parseInt(data[0])>31)
    {alert ("il valore inserito non puo' essere ammesso per il \"giorno\"");
    d.value=data[0].substring(0,0);}
    //alert();
    break;
    case "mm_comm":
    data[1]=d.value;
    if (((data[1]=="4"||data[1]=="6"||data[1]=="9"||data[1]=="11")&& parseInt(data[0])>30)||
    ((data[1]=="2")&& parseInt(data[0])>28))
    {
    alert("inserire un valore valido per il mese");
    d.value="0";
    }

    alert(data[0]+" / "+data[1]);
    break;
    }
    }

    function inserisciPreventivo()
    {
    elem=document.getElementById("carica");
    imp=document.getElementById("num_impegno").value;
    az=document.getElementById("mezzi_impegno").option s[document.getElementById('mezzi_impegni').selectedI ndex].value;
    comm=document.getElementById("commessa").value;
    g_com=document.getElementById("gg_comm").value;
    m_comm=document.getElementById("mm_comm").value;
    a_comm=document.getElementById("aaaa_impegno").val ue;
    sede=document.getElementById("sede").value;
    importo=document.getElementById("importo_prev").va lue;
    ins=true;
    url="inserisci_prev.php?id="+elem.id;
    window.open(url,"_blank");
    //document.forms[0].submit();
    }
    </script>

    </head>
    <body>
    <form name="inserimento" method="GET" action="" target="">


    <table border="1" width="70%" align="center">
    <tr>
    <td width="33%" height=35 bgcolor="#F0F8FF" align="right">Impegno</td>
    <td width="33%"align="left">
    <input type="text" tabindex="1" name="num_impegno" id="num_impegno" size="4" value="" onblur="verifica(this.id);">
    </td>
    <td width="33%" height=35 align="center" valign="middle" border=0 rowspan="100%">
    <input type="button" name="invia" id="carica" VALUE="Carica Preventivo" onclick="inserisciPreventivo();">



    <input type="button" size="100"name="invia2" VALUE="Chiudi" onclick="chiudi();">
    </td>
    </tr>
    <tr>
    <td width="33%" height=35 bgcolor="#F0F8FF" align="right">Mezzo</td>
    <td width="33%"align="left">
    <div id="mezzo_associato">
    <select name="mezzi_impegno" id="mezzi_impegno" tabindex="2">
    <option></option>
    </select>
    </div>
    </table>
    <iframe id="dati_nascosti" name="dati_nascosti" height="0" width="0" src="about:blank" frameborder="0">
    </iframe>
    </form>
    </body>
    </html>

    [funzioni javascript richiamate in utility.js]
    function verifica(id_chiamante)
    {
    var elem=document.getElementById(id_chiamante);
    var elemVal=elem.value;
    url="verifica_dati.php?valore="+elemVal+"&id="+ele m.id;
    window.open(url,"dati_nascosti");
    //return true;
    }

    [programma PHP che esegue la query]
    <?php
    $value=$_REQUEST['valore'];
    $id=$_REQUEST['id'];
    $connect=mysql_connect($host, $login, $password) or die("Accesso Negato!");
    $str="<select name=\"mezzi_impegno\">";
    $db=mysql_select_db($db_name,$connect);
    $sql="SELECT az_impegno FROM impegno_mezzi WHERE num_impegno=".$value;
    $result=mysql_query($sql);
    //echo "<script> alert('".mysql_num_rows($result)."');</script>";
    if (!$result)
    {echo "<script> alert('Il valore inserito non e\' valido!');</script>";}
    if (mysql_num_rows($result)=="0")
    {echo "<script> alert('Nessun mezzo e\' associato al contratto');</script>";}
    {
    if(mysql_num_rows($result)>0)
    {
    $i=0;
    while ($row=mysql_fetch_assoc($result))
    {
    $mezzo=$row['az_impegno'];
    $str.= "<option value=\"".$mezzo."\">".$mezzo."</option>";
    $i++;
    }
    }
    }
    $str.="</select>";
    mysql_close($connect);
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=windows-1250" />
    <script type="text/javascript">
    window.onload=function()
    {
    var datiAggiornati=document.getElementById("risultato" );
    var tag_rit=parent.document.getElementById("mezzo_asso ciato");
    tag_rit.innerHTML=datiAggiornati.innerHTML;
    };
    </script>
    </head>
    <body>
    <div id="risultato"><?php echo $str; ?></div>
    </body>
    </html>
    _libero_arbitrio_

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    21
    ragazzi..ho risolto..a mente fresca si ragiona meglio e si scoprono gli erroracci!!!
    _libero_arbitrio_

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.