Visualizzazione dei risultati da 1 a 9 su 9

Discussione: onChange e PHP

  1. #1

    onChange e PHP

    come faccio a far si che l'evento onChange oltre a farmi il submit del form in cui sta la mia select, mi assegni ad una variabile $_SESSION un altro valore? mi spiego meglio:
    dentro una while io popolo una select cosi:
    echo '<option value="'.$row['Prezzo_Unitario'].'">'.$row['Descrizione]."'</option>';

    l'evento on Change mi porta con una var POST il valore $row['Prezzo_Unitario'], ma a me serve avere pure $row['Descrizione]

    le soluzioni potrebbero essere portare tutte e due in option value come stringa, ma poi non saprei dividerle quando le recupero

    oppure ho pensato, fare in modo che onChange oltre a fare il submit assegnasse ad una var SESSION il valore di $row['Descrizione] ho provato così ma non funziona.
    codice:
    <select name="gruppo4" onChange={<?= $_SESSION[desc]= $row['Descrizione'];?>;
    "this.form.submit();"}>
    ....e quindi??

  2. #2
    volendo nel value puoi mettere un array serializzato e codificato a base64 contenente le due variabili che ti interessano, quando il value arriva nell'altra pagina lo decodifichi e lo deserializzi

  3. #3
    o gestisci la cosa per come ti è stato detto, ovvero inviando a priori TUTTI i dati che potranno essere usati e quindi pre-compliando le liste e gestendo tutto tramite javascript, ed in questo caso dovresti postare in scripting più che qua

    Oppure usi AJAX, che richiede comunque l'uso di Javascript oltre che di PHP ma da un look "più figho" dato che puoi fare aggiornamenti del db in tempo reale e farli spuntare nel browser

  4. #4
    un array serializzato e codificato a base64 ???? VVoVe:
    se mi puoi dire qualcosina perchè non sò proprio di cosa parli

  5. #5
    Originariamente inviato da mensana3
    un array serializzato e codificato a base64 ???? VVoVe:
    se mi puoi dire qualcosina perchè non sò proprio di cosa parli
    http://it.php.net/serialize

    questa funzione ti permette di 'comprimere' un array mantenendone inalterata la struttura ed i dati, il problema è che viene fuori una roba piena di due punti che non potrà mai viaggiare in $_POST, quindi devi usare

    http://it2.php.net/base64_encode

    che la trasforma in una stringa alfanumerica e ti permette di spedirla dove vuoi

    una volta decodificata la stringa e deserializzata hai di nuovo il tuo array.

    leggi anche questo:

    http://php.html.it/articoli/leggi/85...zinare-i-dati/

    io ho capito come funzionava grazie proprio a questo articolo


    PS: comunque puoi anche usare un carattere separatore che poi ti permette di sapere dove finisce la prima variabile e dove inizia la seconda

  6. #6
    quindi delle mie due soluzioni neanche una è possibile o praticabile?
    specie quella della stringa, se io mando in value tutti e due i dati
    codice:
    $string = $row['Descrizione'].",".$row['Prezzo_Unitario'];
    echo '<option value="'.$string.'">'.$row['Descrizione].'</option>';
    quando poi prendo dal POST questa stringa, non c'è una maniera per farla ridiventare 2 variabili?

  7. #7
    premesso che ti ringrazio e mi andrò di sicuro a leggere gli articoli, con quale istruzione gli faccio riconoscere il carattere separatore in modo da ricavarmi di nuovo le due variabili?
    grazie

  8. #8
    Originariamente inviato da mensana3
    quindi delle mie due soluzioni neanche una è possibile o praticabile?
    specie quella della stringa, se io mando in value tutti e due i dati
    codice:
    $string = $row['Descrizione'].",".$row['Prezzo_Unitario'];
    echo '<option value="'.$string.'">'.$row['Descrizione].'</option>';
    quando poi prendo dal POST questa stringa, non c'è una maniera per farla ridiventare 2 variabili?
    quello di mettere tutte e due le variabili in una stringa è il metodo più pratico sicuramente...
    per quanto riguarda il separatore ne stavano parlando sul forum

    http://forum.html.it/forum/showthrea...readid=1026213


    vedi anche http://it2.php.net/manual/en/function.explode.php

  9. #9
    ho usato explode con list, molto comodo, ti ritrovi le variabili già a posto
    list($gruppo4, $desc4) = explode(":", $przdesc4);
    grazie

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.