Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    282

    Selezionare un dato di una tabella in un campo di input

    Ciao a tutti, premetto che ho poca esperienza in php.
    Ho questo problema: in un campo di input devo inserire un valore scegliendolo da quelli inseriti in una tabella. Se i record della tabella sono pochi potrei usare un combobox (cosa che faccio quando devo inserire la provincia) ma se devo selezionare un record scelto tra migliaia la cosa non è più fattibile...
    Con i linguaggi tradizionali (conosco bene il Visual Fox Pro) mi creo un elenco nel quale mi sposto con il cursore e mi scelgo il record ma non so come realizzarlo (e se è questa la strada giusta) in PHP+MySql. Forse devo creare un elenco in un'altra finestra e poi in qualche modo selezionare il record interessato e trasferirlo nel mio input?
    Vi chiedo qualche consiglio sia su come fare che su qual'è la logica per affrontare questa problematica e magari anche qualche link dove leggere qualcosa.
    Ho provato a cercare sul forum ma non sono riuscita a trovare nulla...
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    se il problema è solo come cercare un record tra quelli presenti nella tabella lo fai direttamente dalla query..

    SELECT * FROM tabella WHERE condizione

    così ti estrae solo i record che ti interessano...

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    282
    Ciao, innanzitutto grazie per il tuo intervento.
    Forse non mi sono spiegata bene. Io dovrei avere a video la possibilità di scegliere il record interessato prendendolo da un elenco (che in questo caso è molto lungo). Nella programmazione tradizionale (o meglio quella che io conosco) posso visualizzare tutti i record di una tabella (anche decine di migliaia) e poi scorrendo con le frecce seleziono il record interessato, ma questo come lo posso fare in php? o in quale altro modo affrontare il problema?
    Spiego esattamente il mio problema:
    stò scrivendo un semplice programmino per la mia scuola per comunicare via web gli argomenti che i ragazzi dovrebbero ripetere.
    ho una maschera di inserimento dove insieme a qualche campo di input standard ho due campi collegati a tabelle. Un primo campo è la scelta della materia (ed ho fatto un combobox collegato alla tabella delle materie) in un secondo campo devo riportare l'ID dell'alunno (e lo devo scegliere in una tabella con oltre 1500 record). E' ovvio che non posso caricare un combobox con 1500 record. Ed allora come fare?
    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    potresti fare così:

    metti un campo nascosto nel form che conterrà l'id dell'utente; al posto della combo da 1500 record metti un link che ti apre un popup nel quale ti fai visualizzare tutti gli utenti e poi fai in modo da cliccare sul nome/cognome/ecc per farti mandare il relativo id nel campo nascosto del form.
    Non so se sono riuscito a farmi capire....

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    282
    Ho fatto come hai detto: ho inserito un campo (per ora non nascosto) ed un link ad una pagina che contine l'elenco. Ma ora come faccio a far restituire l'ID al mio campo?
    Grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    mettiamo che questo sia il tuo campo ID nel form:

    Codice PHP:
    <input type="text" name="IdUser" id="IdUser" value=""
    nel tuo popup, hai la lista degli utenti: metti l'id in un link e tramite javascript lo rimandi al form chiamante.

    La lista degli utenti falla tipo:

    Codice PHP:

    [url="javascript:void(0);"]Utente 1[/url]
    [
    url="javascript:void(0);"]Utente 2[/url]
    [
    url="javascript:void(0);"]Utente 3[/url
    e in testa alla pagina, all'interno del tag <head> metti:

    Codice PHP:

    <script type="text/javascript">
    <!--
       function 
    inviaID(id){
          
    opener.document.getElementById('IdUser').value id;
          
    window.close();
       }
    //-->
    </script> 

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    puoi anche sostituire la chiamata alla textbox con

    opener.document.nomeform.nomecampo.value = id;


  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    282
    Ho fatto come mi hai consigliato (sono totalmente a digiuno di Javascript...)
    ed ho risolto il problema!

    Riesco ora a passare l'ID al pgm chiamante. E se i dati che voglio passare sono più di uno cosa devo modificare la funzione inviaID e onClick?

    grazie ancora

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    esattamente!
    mettiamo che vuoi passare un id e il nome, devi modificare il link in questo modo:

    Codice PHP:
    [url="java-script:void(0);"]Utente Pippo[/url
    e il javascript

    Codice PHP:
    <script type="text/javascript">
    <!--
       function 
    inviaID(idnome){
          
    opener.document.getElementById('IdUser').value id;
          
    opener.document.getElementById('nome').value nome;
          
    // oppure opener.document.nomeform.nomecampo.value come ti avevo scritto prima
          
    window.close();
       }
    //-->
    </script> 

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    attenzione, visto che sei a digiuno di javascript....quando passi dei valori attenta all'apice che ti termina la funzione stessa (mandandola in errore):

    onClick="inviaID(1, 'd'annunzio');" <= l'apice dopo la d ti termina la chiamata alla funzione....
    risolvi mettendo un backslash davanti all'apice:

    inviaID(1, 'd\'annunzio'); <= questa è corretta

    i numeri posono passare senza problemi, così anche i valori booleani, mentre le stringhe devono sempre essere passate all'interno degli apici.

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.