Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: 2select con ajax

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    206

    2select con ajax

    quando mi trovo ad usare ajax uso sempre questa funzione

    di solito la uso per fare uscire qualche valore in qualche div..
    ad esempio clicchi su un link e poi faccio uscire del testo nascosto

    -------------------------------------------------------------
    var isWorking = false;
    var wichid;
    function linkajax(f,g,h)
    {
    if (!isWorking && http)
    {
    http.open("GET", h + "?rand=" + Math.random() + f , true);
    wichid=g;
    http.onreadystatechange = handleHttpResponse;
    isWorking = true;
    http.send(null);
    }
    }

    function getHTTPObject() {
    var xmlhttp;
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
    xmlhttp = new XMLHttpRequest();
    } catch (e) {
    xmlhttp = false;
    }
    }
    return xmlhttp;
    }

    var http = getHTTPObject();

    function handleHttpResponse()
    {
    if (http.readyState == 4)
    {
    document.getElementById(wichid).innerHTML = http.responseText;

    }
    isWorking = false;
    }

    -----------------------------------------

    ora però selezionando una select mando lo scritp su una pagina php che mi ritorna con un valore...

    questo valore ( che poi è un id ) mi deve selezionare la seconda select..

    codice:


    <script language="javascript1.1">

    g = document.prova.clienti.value;
    linkajax('&id_cliente=' + g,'attivita,'ajax.php');

    </script>


    <form name=prova>

    <selec name=clienti onchange=trova();>
    <option value="1">dsfsd</option>
    <option value="2">dsfssadfsadd</option>
    </select>

    <selec name=lavoro id=attivita>
    <option value="1">dsfsd</option>
    <option value="2">dsfssadfsadd</option>
    </select>

    </form>



    su ajax php faccio una query con il valore dei clienti e tiro fuori id per le attivita

    solo che nn so come passare questo valore alla select attivita..

    potete aiutarmi grazie

  2. #2
    e' possibile forzare una <select> a selezionare l'opzione voluta:
    ad esempio se vuoi selezionare la seconda opzione della tua select numero 2:

    codice:
    prova.lavoro.selectedItem = 2;
    (Ovviamente al posto di '2' metti l'item che vuoi selezionare)

    questo codice andrebbe messo nel codice ajax al posto di

    codice:
    document.getElementById(wichid).innerHTML = http.responseText;
    o da quelle parti.

    mmmhhhhhhh forse non sono stato chiarissimo, ma e' quasi ora di pranzo

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    206
    scusa ma non ho modo di toccare quella funzione..che mi serve anche in altre pagine

    non posso ottenere quello che voglio senza toccarla ??

  4. #4
    non mi vengono altre soluzioni al momento...

    ... ma scusa... non puoi creare un'altra funzione identica alla prima ma che differisca solo per quella parte?

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    206
    Ok provo a fare come mi hai detto..ricapitoliamo che nn mi torna


    <script language="javascript1.1">

    //funzione quando seleziono il cliente
    function trova(){

    g = document.prova.clienti.value;
    //richiamo la funzione inkajax
    //è giusto mettere "attivita" ??
    linkajax('&id_cliente=' + g,'attivita,'ajax.php');

    }

    var isWorking = false;
    var wichid;
    function linkajax(f,g,h)
    {
    if (!isWorking && http)
    {
    http.open("GET", h + "?rand=" + Math.random() + f , true);
    wichid=g;
    http.onreadystatechange = handleHttpResponse;
    isWorking = true;
    http.send(null);
    }
    }

    function getHTTPObject() {
    var xmlhttp;
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
    xmlhttp = new XMLHttpRequest();
    } catch (e) {
    xmlhttp = false;
    }
    }
    return xmlhttp;
    }

    var http = getHTTPObject();

    function handleHttpResponse()
    {
    if (http.readyState == 4)
    {
    //sostituisco questo

    //document.getElementById(wichid).innerHTML = http.responseText;

    con questo giusto ?

    prova.lavoro.selectedItem = http.responseText;



    }
    isWorking = false;
    }

    <body>

    <form name=prova>

    <selec name=clienti onchange=trova();>
    <option value="1">dsfsd</option>
    <option value="2">dsfssadfsadd</option>
    </select>
    ma mi serve inserire l'id attività??
    <selec name=lavoro id=attivita>
    <option value="1">dsfsd</option>
    <option value="2">dsfssadfsadd</option>
    </select>

    </form>


    </body>

  6. #6
    Si', a spanne dovrebbe funzionare.

    Nota che io non so bene cosa restituisca la tua funzione ajax.php. Ma da quello che ho capito dovrebbe restituirti semplicemente (e solo!) un numero. Questo numero dovrebbe corrispondere all'indice dell'opzione che vuoi sia selezionata, giusto?

    Allora dovrebbe andare, ma non ho la possibilita' di fare delle prove.

    La riga potrebbe essere modificata anche in questo modo (forse e' meglio)

    codice:
    document.getElementById(wichid).selectedItem = http.responseText;

    Se proprio non va fammi sapere... forse in serata ho un attimo per fare delle prove

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    206
    ciao ho letto ora e ho fatto subito la prova..

    ma non va..forse si fa confusione con il nome e id della select..


    cmq la pagina ajax

    non fa altro che uno semplice query che mi tira fuori un risultato che stampo con "echo"
    es echo $row[id_attivia];

  8. #8
    Eh per forza che non va... mi accorgo di aver sempre scritto

    selectedItem

    ma in realta' si scrive

    selectedIndex

    scusa scusa scusa scusa

    ho fatto 'na prova veloce e mi pare che cosi' vada

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    206
    mi posti il tuo codice che lo controllo con il mio...

    c'è qlcosa che mi sfugge..

    poi nn ti chiedo + nulla

  10. #10
    Originariamente inviato da arnold81

    poi nn ti chiedo + nulla
    figurati... oggi giornata fiacca al lavoro

    Ecco il codice... attento che io non ho la tua ajax.php. Per cui mi sono creato una semplice pagina che mi stampa in uscita un '3'

    E poi ho provato solo con FF

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <meta http-equiv="content-type" content="text/html; charset=windows-1250">
        <meta name="generator" content="PSPad editor, www.pspad.com">
      
    <script language="javascript1.1">
    <!--
    //funzione quando seleziono il cliente
    function trova()
    {
      g = document.prova.clienti.value;
      linkajax('&id_cliente=' + g,'attivita','ajax.php');
    }
    
    var isWorking = false;
    var wichid;
    
    function linkajax(f,g,h)
    {
      if (!isWorking && http)
      {
        http.open("GET", h + "?rand=" + Math.random() + f , true);
        wichid=g;
        http.onreadystatechange = handleHttpResponse;
        isWorking = true;
        http.send(null);
      }
    }
    
    function getHTTPObject() 
    {
      var xmlhttp;
      if (!xmlhttp && typeof XMLHttpRequest != 'undefined') 
      {
        try 
        {
          xmlhttp = new XMLHttpRequest();
          
        } catch (e) 
        {
          xmlhttp = false;
        }
      }
    return xmlhttp;
    }
    
    var http = getHTTPObject();
    
    function handleHttpResponse()
    {
      if (http.readyState == 4)
      {
        alert(http.responseText);
        prova.lavoro.selectedIndex = http.responseText;
      }
      isWorking = false;
    }
    -->
    </script>
      <title>
        </title>
      </head>
      
    <body>
      <form name=prova>
        <select name=clienti onchange=trova();>
          <option value="1">
          dsfsd
          </option>
          <option value="2">
          dsfssadfsadd
          </option>
          </select> 
          
          <select name=lavoro id=attivita>
            <option value="1"> Opzione 1 </option>
            <option value="2"> Opzione 2 </option>
            <option value="3"> Opzione 3 </option>
            <option value="4"> Opzione 4 </option>
            
            
            </select>
      </form>
    </body>
    </body>
    </html>

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 © 2026 vBulletin Solutions, Inc. All rights reserved.