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

    Array php che non funziona in javascript

    Salve, volevo chiedervi un'informazione.
    Ho creato un array in php con chiave e valore tipo
    $codiceutente=array('marco' => '1', 'maria' => '2');

    Poi ho due caselle input chiamate "nome" e "risultato".
    La casella input "nome" è associata all'istruzione onkeypress che mi chiama una funzione javascript.

    In ultimo ho la funzione javascript appena mensionata che viene eseguita alla pressione di un tasto sul campo "nome".
    All'interno della funzione volevo mettere un istruzione in grado di controllare il contenuto della casella input "nome" e di visualizzare nella casella input "risultato" il valore corrispondente memorizzato nell'array $codiceutente.
    Ho messo la seguente istruzione:
    document.nomeform.risultato.value="<?php echo $codiceutente['chiave']; ?>";
    Il mio problema è dover mettere al posto della parola chiave, il contenuto della casella input "nome" ossia document.nomeform.nome.value che, ovviamente, è in javascript.
    Ho provato in vari modi ma ho ottenuto soltanto problemi.
    Ho provato anche così:
    document.nomeform.risultato.value="<?php echo $codiceutente['<script type=\'text/javascript\'> document.nomeform.risultato.value </script>']; ?>";
    ma nulla da fare.

    Questo è un esempio banale per rendere il mio problema comprensibile, sarà mia cura adattare il risultato al mio caso.
    Spero di essere stato chiaro, se qualcuno sà darmi qualche consiglio ne sarei molto grato.
    Grazie.
    Luigi

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ritengo tu abbia molta confusione e che sia meglio tu legga prima le ottime guide di html.it per capire dove come opera il javascript.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Ti ringrazio delle guide, le ho già lette.
    Sarebbe gentile sapere anche il motivo di tale risposta.
    In ogni modo ho scritto la seguente istruzione:
    document.nomeform.risultato.value="<?php echo $codiceutente[marco]; ?>";

    quando scrivo la parola marco nella casella input "nome", nella casella input risultato mi esce il valore corrispondente ossia 1.
    Il mio problema è inserire al posto della parola marco, il valore della casella input "nome".
    Se non è possibile, ci rinuncio.
    Grazie.
    L.

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da ldimaio
    Ti ringrazio delle guide, le ho già lette.
    Sarà come dici, allora forse non le hai capite?
    Sarebbe gentile sapere anche il motivo di tale risposta...
    Perché quello che hai scritto non ha alcun senso e logica in javascript, detto questo php e javascript operano in due ambienti diversi e dialogano tramite input e ouput che possono avvenire o al caricamento/refresh della pagina oppure tramite ajax.
    Ora tornado al tuo problema, non capendo cosa vuoi fare e non riuscendoti a spiegare, forse mettere una demo pubblica (pagina d'esempio online) potrebbe aiutare.
    Saluti.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    tutto è possibile, la soluzione più pulita è "passare" da un array php a un array javascript. Ti fai un ciclo sull'array php e valorizzi l'array javascript. Per associare chiave e valore devi utilizzare un array associativo. Ti consiglio la lettura di questo articolo di html.it

    ps: non scrivere mai più cose del genere

    codice:
    document.nomeform.risultato.value="<?php echo $codiceutente['<script type='text/javascript'> document.nomeform.risultato.value </script>']; ?>";
    Non hanno assolutamente alcun senso e riceverai sempre risposte come quella di andrea

  6. #6
    Beh! Dire di non aver capito cosa voglio, è alquanto giustificato; spiegare un esempio tramite delle righe non è sempre facile.
    Dire che non ho capito le guide senza sapere quello che effettivamente ho chiesto, mi sembra un pò prematuro.
    So benissimo come operano i due linguaggi.
    Cerco di spiegarmi meglio e cambio un po l'esempio per renderlo più facile.

    Ho una pagina php che, in fase di caricamento, viene settato un array chiamato $codiceutente formato da chiavi e valori tipo 'marco' => '1', 'maria' => '2'

    una volta caricata la pagina php, mi viene mostrata una form con un campo input chiamato nome, a seconda di quello che viene scritto all'interno, devo recuperare il valore corrispondente dall'array $codiceutente e mostrarlo con un alert.
    Esempio, se scrivo marco nella casella input, mi si deve aprire un alert con il valore corrispondente "1", lo stesso per maria ossia "2".

    Ho scritto il seguente codice in javascript:
    alert(<?php echo $codiceutente['document.nomeform.nome.value']; ?>);

    l'istruzione dovrebbe aprirmi un alert con il valore dell'array $codiceutente e utilizzando come chiave il contenuto nella input text "nome" ma non va.

    Mi scuso di essere stato complicato, fatemi sapere se adesso è chiaro.
    Grazie mille.
    L.

  7. #7
    Per Vindav.
    Innanzitutto ti ringrazio per il tuo consiglio.
    Volevo soltanto precisare che dire ad una persona che non capisce niente e poi ammettere di non aver nemmeno capito la domanda (per carità, sicuramente per colpa mia) sono due cose contraddittorie.
    Purtroppo non sono una persona esperta nel campo, il mio scopo e di rappezzare un po il mio sito e basta.
    Non essendo un programmatore esperto, è normale porre un esempio del genere, orribile che sia.
    Non giustifico il mio errore, ammetto soltanto le mie basse capacità ed è per questo che ho chiesto un consiglio.
    Ho esposto il mio quesito in modo più semplice e chiaro, se non riesco a risolvere il problema in questo modo, farò come mi hai consigliato tu.
    La variabile $codiceutente è già una variabile associativa in php e volevo utilizzarla in javascript.
    Ti ringrazio della risposta e della guida, ne farò tesoro.
    Grazie.
    L.

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    cmq penso sia inutile prendersela tieni conto che se un utente ti risponde è solo perche sta cercando di darti una mano altrimenti non ti avrebbe nemmeno risposto. ma lasciamo perdere e concentriamoci sul tuo problema. purtroppo non riuscirai mai a risolverlo nel tuo modo perche non hai ancora capito un cosa importante che ti ha gia accennato andrea la riporto:

    detto questo php e javascript operano in due ambienti diversi e dialogano tramite input e ouput che possono avvenire o al caricamento/refresh della pagina oppure tramite ajax
    Quindi ti consiglio nuovamente di prendere in considerazione la soluzione che ti ho riportato nel precedente post, credo sia la via più semplice se hai una sufficiente conoscenza di php. Un altra soluzione è l'uso di ajax ma la lascerei perdere ora perche la ritengo un operazione più complessa. qui trovi un esempio. Tieni conto pero che tu devi lavorare su un array associativo.

  9. #9

  10. #10
    codice:
    <?php
    $codiceutente=array('marco' => '1', 'maria' => '2', 'mario'=>'3');
    $mioJS=array();
    foreach($codiceutente as $k=>$v){
    $mioJS[]=strtolower("'$k': '$v'");
    }
    $mioJS='var codiceutente={'.implode(',', $mioJS).'};';
    ?>
    <form name="nomeform">
    <input type="text" name="nome" onkeyup="funzione(this.value)">
    </form>
    
    <script>
    <?php echo $mioJS;?>
    function funzione(val){
    var esiste=codiceutente[val.toLowerCase()];
    if(typeof esiste != 'undefined'){alert(esiste);}
    }
    </script>
    Faccio presente che il codice che ti ho fornito sopra effettua quello che hai richiesto, per come lo hai formulato.

    Peraltro il thread http://forum.html.it/forum/showthrea...readid=1465539 già trattava l'argomento, e includeva anche un link ad una pagina che insegna appunto a "passare" (meglio: ricostruire) array php in javascript, associative o meno che siano.

    Una regola del forum scoraggia il passaggio al multithread. Cioè sarebbe meglio, per lo stesso argomento, utilizzare il thread già impiegato anzichè utilizzare thread nuovi e degli alias come nickname - che sia un alias si evince dallo stile inconfondibile:

    codice:
    Mariastella1975 "Sarà per la difficoltà in cui mi sono espressa, sarà per la fretta con cui hai letto la mia domanda, stà il fatto che la risposta non ha nulla a che fare con quello che volevo."
    
    Idimaio "Volevo soltanto precisare che dire ad una persona che non capisce niente e poi ammettere di non aver nemmeno capito la domanda (per carità, sicuramente per colpa mia) sono due cose contraddittorie."
    ---------
    Mariastella1975 "Salve, ho un piccolo problema da risolvere."
    
    ldimaio "Salve, volevo chiedervi un'informazione."
    ---------
    Mariastella1975 "onkeypress="funzione()"
    
    ldimaio "istruzione onkeypress"
    ---------
    Mariastella1975 "Innanzitutto ringrazio"
    
    ldimaio "Innanzitutto ti ringrazio"
    ---------
    Stiamo cercando di aiutarti: ma sarebbe preferibile o non lamentarsi quando ti diciamo in diversi che il tuo problema di base è che non conosci alcuni fondamentali di Php e Javascript, o evitare di prenderci in giro rifacendoci domande chiaramente vertenti attorno al medesimo applicativo, facendo finta di essere un' altra persona.
    Una delle due, passi. Ma la paternale ogni volta che la permalosità si sente chiamata in causa per osservazioni peraltro assolutamente lecite e pertinenti come quelle di Andrea e Vindav, più il cambio di identità, è una mancanza di rispetto per chi su questo forum usa le proprie conoscenze per cercare di aiutarti: perchè cercare di dettarci come dobbiamo risponderti (gratis) e poi menarci anche per le aie di diversi nickname tirandoci per il naso, significa ritenerci strumentalizzabili.

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.