Popolare piu campi input con Javascript

Ciao a tutti ragazzi,

io avrei un problema: dovrei popolare 1 barra 2 campi di un form prendendo un valore non da una select ma manualmente, mi spiego meglio , inserisco un codice prodotto in un campo e vorrei far comparire in altri due campi il Nome Prodotto e la Descrizione. Con Javascript si puo fare ma ho trovato esempi solo partendo da delle select. Qualcuno saprebbe aiutarmi?

Grazie

inviato 4 anni fa
rigulizia
Inatanto grazieper la risposta . Chiarimento: Ho una pagina prodotto, dove in una input text "sparo" un codice con una pistola a codice a barre e in altri due campi dovrebbero comparire sia la descrizione che il prezzo, completo il form in altri parti io manualmente e spedisco tutto al db. Ma nel file info.php cosa devo mettere?rigulizia 4 anni fa
Ciao io avrei fatto così: script type="text/javascript" src="../js/jquery-1.4.2.min.js"></script> <script type="text/javascript"> $(function(){ function chiama(this){ var $code_bar = $("#code_bar").val(); $.post("info.php", { code_bar: $code_bar }, function(data) { /* Gestisci i dati (puoi gestirli con JSON) e assegni ai campi di testo i valori che ti interessano */ } ); } }) </script> </head> <body> <div> <label>Codice a Barre</label> <input id="code_bar" /> <br/> <label>Prezzo</label> <input id="rigulizia 4 anni fa
Ciao Zeropingas, allora... il codice l'ho copiato pari pari, nel file info.php ho inserito la connessione al db mysql, ma nel file che io ho chiamato inserisci_prodotto.php mi da un errore alla seconda riga : function chiama(this){ tieni conto che io uso dreamweaver e mi seganla un errorerigulizia 4 anni fa
Ok adesso il file inserisci_prodotto.php non mi da nessun errore mentre il file info.php alla riga 8... if($risultato = $db->mysqli_query($query)){ mi dice che c'è un errore , io non riesco a vedere che tipo di errore mi sottolinea la linea di rosso senza dirmi l'errore, Comunque adesso vedo che inserisco il dato nella pagina inserisci_prodotto.php clicco sul pulsante al quale ho cambiato onclick in elemento, lavora ma non rostituisce... Scussami ma non sono un gran che con il codicerigulizia 4 anni fa
Ip uso Wamp per Mac /Php e Mysql come ambienterigulizia 4 anni fa
X 0 X

Chiarisci esattamente cosa vuoi fare (utilizza "commenta" sotto la tua domanda quando avrai finito, in modo che notifichi a coloro che ti rispondono che č stato effettuato un aggiornamento).

Se ho capito bene, vorresti riempire due campi dato un campo compilato da te. Potresti utilizzare jQuery per effettuare delle richieste post (sfruttando la tecnologia Ajax) ad una pagina che ritira i valori che ti interessano.

1) Includi il framework jQuery nell'head:

<script src="jquery.js"></script>

2) crei la funzione che richiede le informazioni (sempre nell'head):

function chiama(elemento){
      var $codice = $("#codice").val();
      $.post("info.php", { codice: $codice },
         function(data) {
            /*
            Gestisci i dati (puoi gestirli con JSON)
            e assegni ai campi di testo i valori che ti interessano
            */
            $("#prezzo").val(data.prezzo);
            $("#descrizione_prodotto").val(data.prodotto);
         }
      , "json");
}

qui abbiamo utilizzato il formato JSON.

3) crei il bottone che carica fa partire la richiesta ad un'altra pagina:

<button onclick="chiama(this)">Chiama</button>

4) crei la pagina info.php nella quale puoi leggere il codice e restituire le informazioni in una variabile json (presuppongo tu stia utilizzando la mysql anche se verrą deprecato prossimamente):

<?php
   if(isset($_POST['codice'])){
      $codice = $_POST['codice'];
   }

   $codice = mysql_real_escape_string($codice);
   $query = "SELECT * FROM Prodotti WHERE Codice=$codice"
   if($risultato = mysql_query($query)){
      if($riga = mysql_fetch_array($risultato)){
          //Creo la stringa da stampare per fare leggere i dati alla pagina richiedente
          $ritorno = '{"prezzo":'.$riga['Prezzo'].',"prodotto":"'.$riga['Prodotto'].'"}';
          exit($ritorno);
      }
      else{
          //Gestisci il caso in cui il prodotto con il codice selezionato non esiste
      }
   }
   else{
      //Gestisci il caso in cui la query ha creato un errore
   }
?>

Leggi cosa c'č scritto nel riquadro rosso presente in questa pagina (Suggested Alternatives).

risposto 4 anni fa
zeropingas
modificato 4 anni fa
Ho inserito informazioni riguardanti la pagina info.php e ho migliorato il codice della funzione Javascript.zeropingas 4 anni fa
Indica esattamente il tipo di errore che ti procura. Ho rimodificato il codice Javascript (cambiato il nome del parametro --> non è più this).zeropingas 4 anni fa
Ciao Zeropingas, mi aiuteresti per questo ultimo passaggio?rigulizia 4 anni fa
mysqli_query si riferisce all'oggetto istanziato dalla classe mysqli --> se ti da errore forse tu stai utilizzando mysql e non mysqli?zeropingas 4 anni fa
Si io uso mysql..rigulizia 4 anni fa
Ho modificato il codice dato che stai utilizzando mysql e non mysqli.zeropingas 4 anni fa
Ciao Zeropingas , la pagina che elabora le query in realtà funziona perchè già gli avevo cambiato l'estensione per mysql, infatti se la provo passandogli un valore nella query mi stampa un risultato, è la pagina che invia che o non passa il dato o non lo visualizza...rigulizia 4 anni fa
Assicurati che l'input in cui inserisci il codice prodotto abbia come id="codice".zeropingas 4 anni fa
C'è. io uso sia php 5.2 che 5.3...ma tu sei riuscito a provarlo?rigulizia 4 anni fa
Non l'ho provato ma mi sembra scritto correttamente. Prova ad installare firebug (se utilizzi Firefox) e avvialo prima di caricare la pagina, in modo da vedere i vari errori. Fammi sapere se ti da qualche tipo di messaggio (guarda la sezione Console).zeropingas 4 anni fa
Comunque non funziona...rigulizia 4 anni fa
hai provato ad utilizzare Firebug?zeropingas 4 anni fa
Si ma non sono capace di capire dove sia l'errorerigulizia 4 anni fa
Ti mostra qualcosa scritto in rosso nella sezione console?zeropingas 4 anni fa
chiama is not definedrigulizia 4 anni fa
modificato il codice della parte dello script in javascript. Prova così e dimmi se ti da problemi.zeropingas 4 anni fa
Adesso firebug non mi da nessun errore però non carico ancora nessun data, ma perchè se li invio con POST l'url mi cambia così?: code_bar=1&Prodotto=&Prezzo=rigulizia 4 anni fa
Nella sezione console dovresti vedere che qualcosa ha inviato, Firebug ti avverte che è stata effettuata una richiesta post ad una determinata pagina e ti da tutte le informazioni riguardanti questa richiesta.zeropingas 4 anni fa
Allora nel pannello Net vedo sott XHR URL 0 richieste e dimensione 0rigulizia 4 anni fa
adesso dopo diverse prove mi dice questo: <b>Fatal error</b>: Call to a member function real_escape_string() on a non-objectrigulizia 4 anni fa
e la riga 19 dovrebbe essere questa:$code_bar = $db->real_escape_string($code_bar);rigulizia 4 anni fa
Zeropingas...ci siamo... mando una richiesta attraverso POST e ricevo una risposta di questo tipo: {"Prezzo"24.00,"Prodotto"Chiavetta Usb Moskeyto 8 gb}, ma non riesco a popolare i campi input.....rigulizia 4 anni fa
Apposto, hai sistemato gran parte dei problemi. Ora il risultato che devi ottenere è questo: "Prezzo": 24.00, "Prodotto": "Chiavetta USB Moskeyto 8gb" (in pratica tieni conto sia dei due punti tra chiave e valore e sia degli eventuali apici (doppi o singoli) che ti segnalano una stringa e non un valore numerico).zeropingas 4 anni fa
ma io vedo che mi passa la stringa da firebug, perchè i csmpi prezzo e prodotto non vengono popolati, non so come assegnarli ai campi inputrigulizia 4 anni fa
Prima di arrivare lì devi assicurarti che la variabile JSON sia popolata per bene seguendo i suoi standard, quindi modifica come ti ho detto l'output della pagina che invia i dati. Per popolare gli elementi ti basta utilizzare una funzione di jQuery. In realtà il codice sta già apposto, basta dare un'occhiata alla funzione chiama().zeropingas 4 anni fa
tu indendi questa? $ritorno = '{"nome":'.$riga['nome'].',"descrizione":'.$riga['descrizione'].'}';rigulizia 4 anni fa
Esatto. Il trucco sta tutto lì. Nel tuo caso dovresti fare... guarda sù che ora modifico per il tuo casozeropingas 4 anni fa
il dato da passare alla SELECT lo invia, fa la query e restituisci la stringa , solo che dopo non popola gli inputrigulizia 4 anni fa
Sono 5 commenti che ti ripeto la stessa cosa. Non può popolarli se non li riceve come se li aspetta.zeropingas 4 anni fa
ahh e non avevo capito....sorryrigulizia 4 anni fa
Ho inserito un link per JSON. Danne un'occhiata perchè è inutile dirti come farlo se non sai di cosa sto parlando.zeropingas 4 anni fa
X 0 X X
Effettua l'accesso o registrati per rispondere a questa domanda