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

    Problema con ciclo foreach

    Salve,
    Ho un form dinamico dove secondo i prodotti selezionati puoi inserire alcune informazioni (altezza, larghezza etc..) per ogni prodotto.
    Il form invia i valori in POST
    tramite input es.<input type=\"hidden\" name=\"itemid[]\" id=\"$itemid\"
    value=\"$itemid\">

    Il problema mi nasce quando devo ricevere i dati inviati, perchè per un dato solo mi funziona (esempio se volessi trovare gli $itemid di ogni prodotto mi rende tutti gli $itemid dei prodotti oggetto del form). Ma non mi funziona se chiedo di estrapolare anche gli altri valori:

    $larghezza=$_POST["larghezza"];
    $altezza=$_POST["altezza"];
    $itemid=$_POST["itemid"];
    $gradini=$_POST["gradini"];
    $gradiniventaglio=$_POST["gradiniventaglio"];

    $valori=array($itemid, $larghezza, $altezza, $gradini, $gradiniventaglio);

    //apro il ciclo

    foreach($valori as $a){

    echo "$a";
    }
    MI TORNA COME RISULTATO ARRAY ARRAY
    Dove sbaglio?
    Anche un orologio rotto una volta al giorno c'ha ragione...

  2. #2
    Da quello che mi sembra di capire tu mandi più dati con lo stesso name, quindi è normale che se dopo crei un array che raggruppa i dati che ricevi in Post non fai altro che creare un array di array.
    Quindi devi fare un doppio ciclo,
    es.
    Codice PHP:
    $valori=array($itemid$larghezza$altezza$gradini$gradiniventaglio);

    //apro il ciclo

    foreach($valori as $chiave=>$valore){
        
        foreach(
    $valore as $a){
                echo 
    $a."
    "

           }


  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Codice PHP:
    foreach($valori as $a){
      foreach (
    $a as $b) {
        
    print_r($b);
      };


  4. #4

    Funziona

    Grazie in effetti così stampa tutti i valori inviati tramite form. Il problema è che sono mischiati. Come faccio ad indicizzarli?
    E' possibile fare in modo di vedere:
    1 itemid larghezza lunghezza etc..
    2 itemid larghezza lunghezza etc..
    etc...
    Grazie molte anticipatamente...
    Anche un orologio rotto una volta al giorno c'ha ragione...

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    supponendo le quantità di elementi siano uguali, qualcosa come:

    Codice PHP:
    $larghezza=$_POST["larghezza"];
    $altezza=$_POST["altezza"];
    $itemid=$_POST["itemid"];
    $gradini=$_POST["gradini"];
    $gradiniventaglio=$_POST["gradiniventaglio"];

    foreach (
    $itemid as $i => $id) {
      
    $lar $larghezza[$i];
      
    $alt $altezza[$i];
      
    // ... etc ...
      
    print "$id$lar x $alt"."\r\b
    "
    ;
    }; 

  6. #6
    Le quantita non sono tutte uguali non so se è per quello ma non mi produce nessun risutato il codice
    $larghezza=$_POST["larghezza"];
    $altezza=$_POST["altezza"];
    $itemid=$_POST["itemid"];
    $gradini=$_POST["gradini"];
    $gradiniventaglio=$_POST["gradiniventaglio"];

    foreach ($itemid as $i => $id) {
    $lar = $larghezza[$i];
    $alt = $altezza[$i];
    // ... etc ...
    print "$id: $lar x $alt"."\rb
    ";
    };



    Ho provato con asort();
    ma mi ordina solo i risultati non li indicizza...

    $valori=array("Prodotto" => $itemid, "Larghezza" => $larghezza, "Altezza" => $altezza, "Quantita" => $quantita, "Gradini a ventaglio" => $gradiniventaglio, "Gradini" => $gradini);
    $lungh_array= count($itemid);
    echo "Prodotti: $lungh_array
    ";
    echo "I contenuti sono...
    ";


    foreach($valori as $chiave=>$valore){

    asort($valori);
    reset($valori);
    foreach($valore as $a){

    $print= $chiave. $a."
    ";
    echo "$print";}
    Anche un orologio rotto una volta al giorno c'ha ragione...

  7. #7
    Scusa eiyen
    Mi correggo sembra funzioni...
    Anche un orologio rotto una volta al giorno c'ha ragione...

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ah, ecco... stavo rispondendo di stampare il dump di almeno 3 elementi e di vedere come sono... il ciclo che ti ho messo dovrebbe funzionare perchè cicla su $itemid (quindi questi dovrebbero essere corretti) e con lo stesso indice accede agli altri vettori...

    ok, allora

  9. #9
    Confermo funziona, grazie mille
    Anche un orologio rotto una volta al giorno c'ha ragione...

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    di niente, ciao!!

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.