Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [PHP+AJAX] invio multiplo valori input

    Buon pomeriggio.
    Ho una pagina con N input:
    giorno - mattino dal - mattino al - mattino testo - pomeriggio dal - pomeriggio al - pomeriggio testo

    Codice PHP:
    echo "<form method='POST'>";
    echo 
    "<input type='hidden' id='day' name='day' value='LU'>
    <input type='text' id='mattina_dal' name='mattina_dal' value='08:00'>
    <input type='text' id='mattina_al' name='mattina_al' value='12:30'>
    <input type='text' id='pom_dal' name='pom_dal' value='14:00'>
    <input type='text' id='pom_al' name='pom_al' value='20:00'>
    <input type='submit' value='invia'>"
    ;
    echo 
    "</form>"
    Ovviamente, il form comprende tutte le input per tutti i giorni della settimana.
    Cosa devo fare?
    Inviare per ogni giorno della settimana, l'array con tutti gli orari.
    Le sto provando tutte tipo:
    Codice PHP:
    //pagina del form
    echo "<input type='text' id='calendar' name='calendar' value='08:00'>
    ecc
    ecc"
    ;
    //pagina invio dati
    function ajaxSubmit(tipo,ids){
    var 
    mydata = [];        $('input[name="calendar"]').each(function(){            mydata.push($(this).val());        });} 
    Quando invio i dati alla pagina per l'inserimento, mi crea un array con N indici.
    Codice PHP:
    array(42) {[0]=> string(2"LU" [1]=> string(8"08:00 am" [2]=> string(8"12:00 am" [3]=> string(1"C" [4]=> string(8"07:00 pm" [5]=> string(1"G".... 
    Vorrei che, l'array avesse soltanto 7 indici, che racchiudono tutte le info per ogni singolo giorno es:
    Codice PHP:
    array(7) {[0]=> ("LU","08:00 am","12:00 am","C","07:00 pm","G") [1]=>("MA","08:00 am","12:00 am","C","07:00 pm","G")  ecc ecc 
    Come faccio?
    Grazie.

  2. #2
    Primo, perchè fai echo di codice HTML? Mettilo fuori dai tag PHP e sei a posto (meglio sarebbe separare business logic dalla presentazione con un patternt tipo MVC ma per ora partiamo dalla cose semplici).

    Secondo, perchè devi usare AJAX se hai già una form?
    Metti i nomi dei campi tipo valori[0][day], valori[1][day], etc. e leggili in PHP come array.

    Se proprio proprio devi farlo tramite JS, crea una form con i campi con id tipo valore_0_day, valore_1_day etc.
    Cicla su di essi con JQuery (usando un selector tipo id inizia per "valore_") e salvali in un array di oggetti JS. Poi passi questo come payload della chiamata post, e lo leggi come array associativo in PHP.

  3. #3
    intanto ti ringrazio, adesso funziona.
    Tanto per:
    - primo. ho postato con echo soltanto per il post, separo tutto quello che c'è da separare(configurazione, connessione al db, gestione query, creazione template, funzioni di gestione ecc)
    - uso ajax perché devo gestire, al momento dell'invio, la corretta compilazione dei campi, cosi restituisco degli alert che informano/guidano l'utente

    Ultima cosa.
    Nella pagina dove ho la funzione ajaxsubmit, ho il problema che, la gestione della variabile intesa come array mi restituisce stringa vuota.
    In pratica l'array è vuoto.

    Codice PHP:
    function ajaxSubmit(tipo,ids){
                    var 
    mydata "";
                    
    //var mydata = [];        
    $('input[id="calendar"]').each(function(){            mydata.push($(this).val());        });        alert(mydata);
    ecc ecc

    L'alert mi restituisce stringa vuota.
    Penso che questa gestione, sia adatta ad un array semplice e non multidimensionale come quello che ho io.
    Secondo te come posso risolvere?
    Grazie ancora.

  4. #4
    sembra che abbia trovato questa soluzione:
    Codice PHP:
    <script>
    function 
    ajaxSubmit(tipo,ids){
    var 
    arr = $('input[name^=calendar]').map(function(){    return this.value;}).get(), newArr = [];while(arr.length 0)      newArr.push(arr.splice(3));
    alert(newArr);

    ecc ecc

    }
    <
    script
    Domani la metto in pratica e se funziona, meglio per tutti

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.