Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    valorizzare una serie di campi input selezionando una prima select con ajax

    Ciao Raga, urge aiutino
    inizio col chiedere scusa, dopo diversi anni per esigenza sono tornato a mettere mani sul codice,
    inutile dire che ricordo molto poco.

    Spero di essere nel forum corretto, comunque;

    Mi trovo alle prese con un form, vorrei valorizzare una serie di input direttamente selezionando una prima select che si popola dinamicamente (PHP, MySQL).

    Vorrei valorizzare alcuni campi input tramite selezione di questa prima select tramite ajax, ma non ricordo come prelevare ed inserire i valori, q
    ualcuno riesce a spiegarmelo con qualche semplice esempio ?

    Thanks!

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    4,856
    Ciao, sì, forum corretto ma, prima di proporti delle soluzioni, posso chiederti di specificare meglio il contesto?

    Cosa intendi per "alcuni campi input" e qual è la mole di dati che devi recuperare dopo la selezione?
    Te lo chiedo perché se si tratta di pochi singoli dati, relativi all'opzione scelta nel select, potrebbe essere più semplice usare qualche attributo data in modo da tenerli pronti già sulla pagina senza scomodare AJAX.
    Prima di postare considera che tra i link utili puoi trovare il 75% delle risposte alle tue domande; il 20% tra i post del forum; il 15% sul web.
    Ti resta... humm spè

    Le cattive domande sono quelle che non meritano risposta, le buone domande sono quelle che non hanno risposta
    L'Itailano non e nu'opnioine. E' improntate uslaro correattemtne sul froum. Garize!

  3. #3
    Grazie KillerWorm della risposta,
    in sostanza ho un form con una select iniziale e altri campi input.
    La select viene popolata dinamicamente (PHP-MySQL) e mi piacerebbe che tramite la selezione utente su questa select far popolare (immagino con chiamata asincrona al DB con valore prelevato dalla select) gli altri campi 4 di input.

    Spero di essermi spiegato

  4. #4
    Presumo che la logica sia simile al seguente tutorial; https://www.yourinspirationweb.com/2...-php-e-jquery/
    io invece che popolare una seconda select vorrei popolare in un colpo solo 4 campi di input

  5. #5
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    4,856
    Ok la tua idea mi era chiara ma ti chiedevo se i dati dei 4 input fossero relativamente pochi. In tal caso potrebbe essere forse più semplice e rapido precaricarli assieme alla pagina, magari memorizzandoli in qualche attribuito data relativo alle singole option in modo tale da leggerli direttamente al momento della selezione, e quindi popolare i 4 input senza bisogno di passare per la chiamata AJAX.
    Prima di postare considera che tra i link utili puoi trovare il 75% delle risposte alle tue domande; il 20% tra i post del forum; il 15% sul web.
    Ti resta... humm spè

    Le cattive domande sono quelle che non meritano risposta, le buone domande sono quelle che non hanno risposta
    L'Itailano non e nu'opnioine. E' improntate uslaro correattemtne sul froum. Garize!

  6. #6
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Ok la tua idea mi era chiara ma ti chiedevo se i dati dei 4 input fossero relativamente pochi. In tal caso potrebbe essere forse più semplice e rapido precaricarli assieme alla pagina, magari memorizzandoli in qualche attribuito data relativo alle singole option in modo tale da leggerli direttamente al momento della selezione, e quindi popolare i 4 input senza bisogno di passare per la chiamata AJAX.
    Perdona ma non ho capito
    Come faccio a precaricarli se i dati che devono andare a popolare i 4 campi di input devono essere prelevati dal DB tramite chiamata con valore passato dalla prima select?

  7. #7
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    4,856
    I valori della prima select li avrai già tutti nella serie di option al momento della creazione della pagina. Potresti quindi fare un ciclo in PHP per interrogare opportunamente il db in base a ciascuno di quei valori e creare quindi la pagina già con tutti i relativi dati che userai poi per popolare gli input ad ogni selezione. Ma, ripeto, questa potrebbe essere una valida soluzione se la mole di dati (cioè i 4 dati per tutte le option presenti) è relativamente ristretta.
    Prima di postare considera che tra i link utili puoi trovare il 75% delle risposte alle tue domande; il 20% tra i post del forum; il 15% sul web.
    Ti resta... humm spè

    Le cattive domande sono quelle che non meritano risposta, le buone domande sono quelle che non hanno risposta
    L'Itailano non e nu'opnioine. E' improntate uslaro correattemtne sul froum. Garize!

  8. #8
    Umh...
    assumiamo che imposto la query con le opportune relazioni tabelle e vado a popolare la select ottenendo già tutti i dati che servono per andare a popolare i restanti 4 input interessati.

    Mi spieghi come faccio a passare ed inserire il dato (ovviamente diverso per ogni campo di input) nei 4 campi alla selezione dell'utente?

  9. #9
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    4,856
    Sì certo, ti faccio un esempio al volo, dimmi solo se usi/puoi usare jQuery o se vuoi fare in puro JavaScript.
    Prima di postare considera che tra i link utili puoi trovare il 75% delle risposte alle tue domande; il 20% tra i post del forum; il 15% sul web.
    Ti resta... humm spè

    Le cattive domande sono quelle che non meritano risposta, le buone domande sono quelle che non hanno risposta
    L'Itailano non e nu'opnioine. E' improntate uslaro correattemtne sul froum. Garize!

  10. #10
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    4,856
    Qui un semplice esempio in puro JavaScript:
    codice:
    <!DOCTYPE HTML>
    <html lang="it">
      <head>
        <title>Esempio</title>
      </head>
      <body>
        <label for="prodotti">Scegli prodotto:</label>
        <select id="prodotti">
          <option value="" selected>--</option>
          <option value="mela"   data-disponibile="10 sacchetti" data-prezzo="1.50" data-consegna="1" data-trasporto="si">Mela</option>
          <option value="pera"   data-disponibile="3 cassette"   data-prezzo="2.00" data-consegna="3" data-trasporto="no">Pera</option>
          <option value="mango"  data-disponibile="20 unità"     data-prezzo="3.20" data-consegna="2" data-trasporto="no">Mango</option>
          <option value="limone" data-disponibile="8 cassette"   data-prezzo="1.00" data-consegna="3" data-trasporto="si">Limone</option>
        </select>
        <hr>
        <label>Disponibilità: <input id="disponibile"></label>
        <br><label>Prezzo articolo: <input id="prezzo"></label>
        <br><label>Consegna in: <input id="consegna"> giorni</label>
        <br><label>Spese trasporto comprese:
          <select id="trasporto">
            <option value="" selected>--</option>
            <option value="si">Sì</option>
            <option value="no">No</option>
          </select>
        </label>
        
        <script>
          var selProdotti = document.querySelector('#prodotti');
          var inpDisponibile = document.querySelector('#disponibile');
          var inpPrezzo = document.querySelector('#prezzo');
          var inpConsegna = document.querySelector('#consegna');
          var selTrasporto = document.querySelector('#trasporto');
          
          selProdotti.addEventListener('change', function(){
            var opt = this.options[this.selectedIndex];
            inpDisponibile.value = opt.dataset.disponibile || '';
            inpPrezzo.value      = opt.dataset.prezzo || '';
            inpConsegna.value    = opt.dataset.consegna || '';
            selTrasporto.value   = opt.dataset.trasporto || '';
          });
        </script>
      </body>
    </html>
    Prima di postare considera che tra i link utili puoi trovare il 75% delle risposte alle tue domande; il 20% tra i post del forum; il 15% sul web.
    Ti resta... humm spè

    Le cattive domande sono quelle che non meritano risposta, le buone domande sono quelle che non hanno risposta
    L'Itailano non e nu'opnioine. E' improntate uslaro correattemtne sul froum. Garize!

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