Visualizzazione dei risultati da 1 a 10 su 10

Discussione: problema ajax -> php

  1. #1

    problema ajax -> php

    Salve a tutti ho un problema, ho bisogno di creare per il mio form una serie di select per la riecrca di auto. La prima select deve contenere tutte le marche, la seconda tutti i modelli della marca scelta e la terza select deve contenere tutte le versioni del modello scelto.

    I dati relativi a marche, modelli e versioni sono estratti da un DB. Dovrei usare ajax per l'estrazione delle marche, dei modelli e delle versioni.

    Ecco il codice che ho creato per l'estrazione solo delle marche, e che non restituisce alcun risultato:

    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script type="text/javascript">
    var myRequest = null;

    function CreateXmlHttpReq(handler) {
    var xmlhttp = null;
    try {
    xmlhttp = new XMLHttpRequest();
    } catch(e) {
    try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    }
    xmlhttp.onreadystatechange = handler;
    return xmlhttp;
    }

    function myHandler2() {
    if (myRequest.readyState == 4 && myRequest.status == 200) {
    e = document.getElementById("marche");
    e.innerHTML = myRequest.responseText;
    }
    }

    function marche() {
    myRequest = CreateXmlHttpReq(myHandler2);
    myRequest.open("GET","marche.php);
    myRequest.send(null);
    }
    </script>
    </head>

    <body onLoad="marche()">

    <div id="marche"></div>

    </body>
    </html>

    mentre il file php per l'estrazione delle marche è il seguente:
    <?php
    include "connect.php";

    $q = mysql_query("SELECT * FROM auto GRUOP BY marca");
    ?>
    <select name="marche">
    <?php while($r = mysql_fetch_array($q)){ ?>
    <option value="<?php echo $r['marca']; ?>"><?php echo $r['marca']; ?></option>
    <?php } ?>
    </select>


    Dove sbaglio??? forse nel creare la select direttamente dal file php?

  2. #2
    Ti da errori? che errori?

    Mi spiace ma di ajax "a basso livello" non se so granchè!



    Emar
    nothing is absolute, but everything is relative | My web site http://marcoronchese.net | My web blog http://blog.marcoronchese.net

  3. #3
    be su explorer 7 e firefox non parte proprio mentre su explorer 6 se gli faccio semplicemente stampare a video una echo dal file php è ok altrimenti se voglio far costruire la select in modo dinamico non fa nulla

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    xmlhttp.onreadystatechange = handler;

    dove hai definito la funzione handler?
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    ti lascio nelle mani più esperte di fcaldera...
    nothing is absolute, but everything is relative | My web site http://marcoronchese.net | My web blog http://blog.marcoronchese.net

  6. #6
    con l'istruzione xmlhttp = new XMLHttpRequest(); non va bene?
    comunque il problema è questo, finche si tratta di aggiungere un testo in un div funziona
    ma io voglio inserire delle opzioni in una select. come posso fare?

  7. #7
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    ti devi creare le varie option al volo: se la tua select ha id="tuaselect" allora a risposta avvenuta la popoli

    var s = document.getElementById('tuaselect');


    var opt = document.createElement('option');
    opt.text = 'testo';
    opt.innerHTML = 'testo';
    opt.value = 'testo';
    s.appendChild(opt);

    e questo blocco va annidato ad esempio in un for, per ciascuna option.
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  8. #8
    funziona!!! solo ora l'unico problema è che mi restituisce nelle varie opzioni tutti i risultati della query, del tipo

    fiat|chevrolet|ford|lancia|audi|
    fiat|chevrolet|ford|lancia|audi|
    fiat|chevrolet|ford|lancia|audi|
    fiat|chevrolet|ford|lancia|audi|
    fiat|chevrolet|ford|lancia|audi|
    fiat|chevrolet|ford|lancia|audi|
    ...
    ...

    invece dovrebbe uscire cosi:
    fiat
    chevrolet
    ford
    lancia
    audi
    ...
    ...

  9. #9
    FUNZIONA...SOLUZIONE TROVATA!!! posto il codice per chiunque ha lo stesso problema:

    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script type="text/javascript">
    var myRequest = null;
    function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
    ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
    ro = new XMLHttpRequest();
    }
    return ro;
    }

    var http = createRequestObject();

    function handleResponse() {
    if(http.readyState == 4){
    var response = new String;
    response = http.responseText;
    var nomi = new Array();
    nomi = response.split("|");
    for (i=0;i<nomi.length;i++) {
    var anOption = document.createElement("OPTION");
    document.getElementById("foo").options.add(anOptio n);
    anOption.innerText = nomi[i];
    anOption.Value = i;
    };
    }
    }

    function sndReq(action) {
    http.open('GET', 'ajax2.php?action='+action);
    http.onreadystatechange = handleResponse;
    http.send(null);
    }
    </script>
    </head>

    <body>

    [foo]
    <select name="foo" id="foo"></select>
    <div id="ex4result"></div>
    </body>
    </html>


    UN GRAZIE A fcaldera
    ciao a tutti

  10. #10
    PROBLEMA: perche questa funzione funziona se associata all'evento onClick di un link ma non funziona se la associo all'evento onload del body????

    ed inoltre su firefox mi crea le varie option ma non inserisce alcun valore all'interno. infatti compaiono vuote

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.