Visualizzazione risultati 1 fino 9 di 9

Discussione: $.each() non ha il valore corrente

  1. #1
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito $.each() non ha il valore corrente

    Invio i dati in post e alla pressione del tasto submit (faccio una jquery Ajax) in sintesi.. Ho un problema che non riesco a risolvere mi aiutereste gentilmente? prima dell' operazione post creo un array php che inserisco nella each convertendolo in un array javascpript, ma anche se é legato al submit ho il vecchio valore. Perché javascript non inizia ad eseguire il codice solo dopo l'evento? Se avete idee su come risolvere, sono bene accette.. Io avevo pensato ad un semplice if, ma su cosa dovrei farla?

  2. #2
    Guest

    Predefinito

    Inizia col postare il codice.
    Nessuno saprà mai dirti dove è l'errore nel tuo codice senza vederlo.

  3. #3
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    ok intanto grazie.. questo é solo un'esempio del codice che uso nel mio script.. Come posso fare a cambiare il testo e il valore delle option con il nuovo $dati3?
    Codice PHP:
    <form method="POST" action="<?php echo "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; ?>">
    <select name="get_season">
    <?php
    $dati3
    [0] = 1617;
    $dati3[1] = 1516;
    $dati3[2] = 1415;
    if(!empty(
    $_POST['get_season'])){
    $dati3[0] = 'ciao';
    $dati3[1] = 'miao';
    $dati3[2] = 'abcd';
    }

    $i = 0;
    $dati4 = '';

    while(
    $i <= count($dati3)-1){
    $dati4 .= '<option value="'.$dati3[$i].'">'.$dati3[$i]."</option>\r\n";
    $i++;
    }
    echo
    $dati4 = substr_replace($dati4, ' selected="selected">',20,1);
    ?>
    </select>
    <input type="submit" value="invia I dati" />
    </form>
    <div id="risultato"><?php echo '<h1>testo</h1>'; ?></div>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
    <script type="text/javascript">
    $( "form" ).submit(function( event ) {
    var season = $( "select" ).val();
    var dataString = "get_season="+season;
    $.ajax({
    type: "POST",
    url: "<?php echo "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; ?>",
    data: dataString,
    cache: false,
    success: function(data)
    {
    var start = data.indexOf("risultato")+11;
    var end = data.indexOf(decodeURIComponent("%3C%2Fdiv%3E"),start)-start;
    $("#risultato").html(data.substr(start,end)).show();
    }
    });
    $("select option").empty().remove();
    var my_arr = [<?php echo '"'.implode('","',$dati3).'"';
    unset(
    $dati3,$dati4,$i); ?>];
    $.each(my_arr, function(key, value) {

    $("select")

    .append($(decodeURIComponent("%3Coption%3E%3C%2Foption%3E"))

    .attr("value",key)

    .text(value));

    });
    event.preventDefault();
    });
    </script>
    Ultima modifica di darbula : 29-09-2016 alle ore 19.57.43

  4. #4
    Guest

    Predefinito

    Perdonami, ma ancora no ho capito cosa vuoi ottenere. Puoi fare un esempio concreto? Prima è così, poi eseguo questa azione e vorrei che divenisse così ma in realtà diventa cosà...

  5. #5
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Tranquillo figurati!! L'esempiio già è concreto.. lo spieghieró con altre parole. inizialmente il documento html dovrebbe avere
    Codice:
    <option value="1617" selected="selected">1617</option>
    <option value="1516">1516</option>
    <option value="1415">1415</option>
    inizialmente option é uguale a $dati3 pre-post.. dopo l'invio con metodo post
    Codice:
    <option value="ciao" selected="selected">ciao</option>
    <option value="miao">miao</option>
    <option value="abcd">abcd</option>
    option dovrebbe essere uguale a questo..
    Nel php é vero ma nel javascript ho sempre il vecchio valore di $dati3..

  6. #6
    Guest

    Predefinito

    Aspetta.

    O non ho capito bene oppure stai mischiando codice lato client con codice lato server.
    Una volta generata la pagina, e quindi quando entrerebbe in funzione JS, il codice PHP non esiste più poichè già elaborato per intero. Quindi non puoi in alcun modo prendere i dati "ciao", "miao", ... senza ricaricare la pagina
    Ultima modifica di vplaza : 30-09-2016 alle ore 23.41.34

  7. #7
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Si hai capito bene.. Quindi ho una alternativa possibile (con il solo post ed un'eventuale altra chiamata ajax perderei i valori) nella funzione data potrei prelevare ogni singolo valore di option (li ho $dati3 aggiornato).

  8. #8
    Guest

    Predefinito

    Facciamo un riepilogo.
    Hai una select con alcuni valori e tu vuoi che questi cambino con la pressione di un pulsante, giusto?
    A parte che non mi è chiaro a cosa possa servire una azione del genere, i nuovi valori sono statici o li recuperi da qualche parte?
    Forse potresti usare delle select a cascata.
    Ultima modifica di vplaza : 01-10-2016 alle ore 14.18.05

  9. #9
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Ciao e buona domenica vplaza.. Ho specificato inizialmente che è solo parte del codice che utilizzo e quindi privo di logica ma che rappresentava il mio problema reale..
    Immagina una form con una select è option imprecisati (poiche dovrebbero essere dati estratti da mysql) dove ci sia sempre un valore di default (o che può essere il cookie o l'invio dei dati, detto con altre parole l'interazione di un utente).
    guarda su questo link il codice completo.. http://forum.it.altervista.org/html-...ml#post1317323 ps.. piu che il cookie di sessione immagina un normale cookie (ho fatto cosi per rispondere ad un quesito di un utente).
    Ultima modifica di darbula : 02-10-2016 alle ore 16.28.17

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •