• User

    Ajax: dati mostrati da mysql_query diversi da quelli presenti nel DB MySql

    Salve a tutti,

    mi sta accadendo una cosa particolare che cerco di spiegare:
    in una pagina php (testi.php) ho una select la quale onchange chiama uno script php tramite ajax che crea un form con textarea, input text etc. riempite tramite una interrogazione al database.

    Facendo delle modifiche ai campi del form appena creato, e rendendo effettive le modifiche con una submit che va a buon fine, sul DB MySql tutto e' aggiornato ma, selezionando dalla select iniziale (nella pagina testi.php) la stessa selezione precedente vengono riempiti i campi del form con i dati precedenti e non con quelli modificati anche se nel DB sono presenti i dati nuovi...come mai e come posso risolvere ?

    Ecco piu' in dettaglio il problema:
    Estratto da testi.php:
    ...
    <script src="ajax.js"></script> <!-- contiene postForm... -->
    ...
    <select id="txt" name="txt" onChange="postForm(this.value)">
    ...

    ajax.js:
    ...
    function postForm(str)
    {
    xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null)
    {
    alert ("Browser does not support HTTP Request")
    return
    }
    var url="postTesti.php"
    url=url+"?q="+str
    //url=url+"&sid="+Math.random()
    xmlHttp.onreadystatechange=stateChanged
    xmlHttp.open("GET",url,true)
    xmlHttp.send(null)
    }
    ...

    postTesti.php
    ...
    $queryview = mysql_query($query) or die("Query Fallita: " . mysql_error());
    ...

    addTesti.php
    ...
    $queryviewTxt = mysql_query($queryInsertTxt) or die("Query Fallita: " . mysql_error());
    ...
    <meta http-equiv='refresh' content='3;url=testi.php'>
    ...

    Ho provato anche con le prototype ma il risultato e' identico:
    ...
    echo("
    <script src='prototype.js'></script>
    <script>
    function postForm()
    {
    new Ajax.Updater( 'result', 'postTesti.php', { method:'get', parameters:document.all.txt.value});
    }
    </script>
    ");
    ...

    Qualcuno sa aiutarmi ?


  • User

    Dopo una serie di peripezie ho risolto momentaneamente cambianto l'onchange della select che invece che richiamare la funzione in ajax si limita a richiamare se stessa con dei parametri che permettono la "creazione" del form che contiene caratteri validi (àòèé etc. etc.) e che riempie correttamente le textbox e le textarea con i dati aggiornati.

    Ah, mi ero dimenticato di aggiungere che il problema precedente era presente solo con IE perche' con FF tutto funzionava correttamente. Cambiamento soltanto l'evento onchange della select tutto funziona regolamente.

    Grazie ancora a chi vorra' svelarmi l'arcano.