Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    44

    Pear Html_quickform + Ajax + Ie

    Salve a tutti,
    sto impazzendo:

    Vi espongo il problema:

    Ho un form generato con PEAR HTML QUICKFORM.
    All'interno del FORM ho 3 SELECT.

    - REGIONE
    - PROVINCIA
    - COMUNE

    Nella prima select carico un array che contiene le option value con tutte le regioni di Italia.
    Alla select aggiungo l'attributo onchange="dochange('prov',this.value" che fa riferimento a questa funzione JavaScript/AJAX:

    function Inint_AJAX() {
    try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {} //IE
    try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} //IE
    try { return new XMLHttpRequest(); } catch(e) {} //Native Javascript
    alert("XMLHttpRequest not supported");
    return null;
    };

    function dochange(src, val) {
    var req = Inint_AJAX();
    req.onreadystatechange = function () {
    if (req.readyState==4) {
    if (req.status==200) {
    document.getElementById(src).innerHTML=req.respons eText; //
    }
    }
    };
    req.open("GET", "typo3conf/ext/pareri/pi1/localeinsert.php?data="+src+"&val="+val); //
    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=iso-8859-1"); // set Header
    req.send(null); //
    }

    Lo Script localeinsert.php, come potrete immaginare, è semplicissimo: effettua una query SQL su una tabella che contiene le provincie e ritorna in HTML <option value="provincia">provincia</option>

    Su FIREFOX tutto ok, senza alcun problema.
    Con Internet Explorer non ne vuole proprio sapere.

    Questa è una parte del codice localeinsert.php

    if ($data=='prov') {
    echo "<option value=\"\">Scegli una provincia</option>\n";
    $val2=$val;
    $result=mysql_db_query($dbname,"SELECT * FROM prov WHERE regione='$val' ORDER BY prov");
    while($row=mysql_fetch_array($result)){

    echo "<option value=\"$row[prov]\" >$row[prov]</option> \n" ;
    }


    A chi mi risolve questo problema offro un pranzo.
    Grazie a tutti e buona giornata.
    S:

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    44

    problema risolto

    Per fortuna esiste JQUERY!!!!
    Problema risolto grazie all'aiuto di un collega.

    La causa era innerHTML che da' non pochi problemi con IE.

    Per conoscenza posto il codice JavaScript modificato (bisogna includere la libreria jQuery):

    function Inint_AJAX() {
    try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {} //IE
    try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} //IE
    try { return new XMLHttpRequest(); } catch(e) {} //Native Javascript
    alert("XMLHttpRequest not supported");
    return null;
    };

    function dochange(src, val) {
    var req = Inint_AJAX();
    req.onreadystatechange = function () {
    if (req.readyState==4) {
    if (req.status==200) {
    $("#"+src).html(req.responseText);
    }
    }
    };
    req.open("GET", "typo3conf/ext/pareri/pi1/localeinsert.php?data="+src+"&val="+val); //
    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=iso-8859-1"); // set Header
    req.send(null); //
    }
    S:

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.