Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 45
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909

    problema con for e foreach

    Ciao a tutti,
    allora ho una situazione del genere:

    un form composto da dieci select di nome "tipologia", tutte con lo stesso nome,

    ovviamente di quelle dieci posso anche scegliere di inviarne alla pagina successiva solo 1, 2 etc.


    ora dovrei costruirmi un ciclo (for o foreach) che per ogni select"piena" quindi !="" mi inserisce tante righe nel db e che abbiamo come contenuto ovviamente il valore delle "diverse" select

    pls help

  2. #2
    se il name = tipologia e' per tutte e 10 uguale, non ti si pone il problema. Troverai valorizzata una soltanto, e precisamente l'ultima.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Vediamo se ho capito...
    Hai un form di questo tipo:

    codice:
    <form name="selezione" method="post" action="elabora.php">
         <select name="tipologia[]">
              <option value="null">----------</option>
              <option value="1">Opzione 1</option>
              <option value="2">Opzione 2</option>
              <option value="3">Opzione 3</option>
         </select>
         
    
         <select name="tipologia[]">
              <option value="null">----------</option>
              <option value="a">Opzione a</option>
              <option value="b">Opzione b</option>
              <option value="c">Opzione c</option>
         </select>
         
    
         <select name="tipologia[]">
              <option value="null">----------</option>
              <option value="5">Opzione 5</option>
              <option value="6">Opzione 6</option>
              <option value="7">Opzione 7</option>
         </select>
         
    
         <input type="submit" name="ok" value="Invia" />
    </form>
    Nella pagina elabora.php
    Codice PHP:
    // controllo se il form è stato inviato
    if(isset($_POST['ok']) && $_POST['ok'] == 'Invia')
    {
        
    $mySelect $_POST['tipologia'];
        
        
    // scorro gli elementi della form
        
    foreach($mySelect as $myVal)
        {
            
    // se il valore non è null accodo le query
            
    if($myVal != 'null')
            {
                @
    mysql_query("INSERT INTO tabella VALUES('$myVal')");
            }
        }



  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909
    allora ho provato così come mi hai suggerito ma nada:

    codice:
    	   if($_GET[step]=="1"){
    	   include"dati.php";   
    if(isset($_POST['sistemazione']) && $_POST['Modifica'] == 'Modifica') 
    { 
        $mySelect = $_POST['sistemazione']; 
         
        // scorro gli elementi della form 
        foreach($mySelect as $myVal) 
        { 
            // se il valore non è null accodo le query 
            if($myVal != 'null') 
            { 
                $query ="INSERT INTO tariffe(sistemazione) VALUES('$myVal')";
    			mysql_query("$query") or die ("err"); 
            } 
        } 
    }
    }
    ...non mi inserisce nulla

  5. #5
    Posta il codice che genera i forms con i campi select, voglio vedere come sono fatte.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909
    perfetto! risolto

    ho tolto:
    codice:
    && $_POST['Modifica'] == 'Modifica')

    e modificato:
    codice:
    if($myVal != 'null') 
    //con
    if($myVal !="")
    ora il problema è che ho altri campi da inserire, per cui basandomi sulla select di cui sopra devo inserire il resto dei dati:

    codice:
    	  <select name=sistemazione[]>";
    	 
    	  echo"
    	   <option selected value=>Seleziona...</option>
    <option value=\"SINGOLA\">SINGOLA</option>
    <option value=\"DOPPIA\">DOPPIA</option>	  
     	  </select></div>";
    	  
    	  echo"<div id=sx2><span class=style2>Arrangiamento</span>
    
    	  <select name=arrangiamento[]>";
    	echo"
    <option value=\"B&B\">B&B</option>
    <option value=\"HB\">HB</option>
    <option value=\"FB\">FB</option>	  
    	  </select></div>";
    come posso fare?

  7. #7
    scusami ma non ho capito bene cosa vuoi fare

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909
    come da codice HTML, oltre alla select che abbiamo risoltoesistono altri dati da inserire tipo:

    select[] select[] text[] text[]

    select[] select[] text[] text[]

    etc...

    ora come dicevo basandomi sulla prima select, quindi per qaunto sono le select!="" inserisco gli altri relativi valori nel db

    ho provato a modificare qui
    codice:
    $mySelect = $_POST['sistemazione'];
    $arrangiamento=$_POST['arrangiamento']; 
    .....
    $query ="INSERT INTO tariffe(sistemazione,arrangiamento) VALUES('$myVal','$arrangiamento')";
    ...
    ma nel db mi inserisce un bell' array

    credo che dovrei specificare gli altri valori qui:
    codice:
    foreach($mySelect as $myVal)  //e tutti gli altri
    più chiaro? grazie mille!

  9. #9
    Che ti inserisca un array è normale...
    Non so, se mi viene in mente qualcosa la posto

    EDIT:
    Ho pensato a questo:

    Codice PHP:
    // Dichiarazione degli array (ogni campo deve avere un suo array)
    $myArray1 = array('Select1''Select2''Select3');
    $myArray2 = array('''Text2''''Text4');
    $myArray3 = array('Campo1''''''Campo4');

    // array generale che contiene tutti i campi
    $myArray = array($myArray1$myArray2$myArray3);

    // scorro tutti i valori
    foreach($myArray as $myVal)
    {
        foreach(
    $myVal as $myCampi)
        {
            
    // inserisco solo i valori non nulli
            
    if($myCampi != '')
                
    $myQuery .= $myCampi ', ';    
        }
        
    }

    // dato che i campi termineranno sempre con virgola ed uno spazio, taglio le ultime due lettere
    $myLen strlen($myQuery);
    $myQuery substr($myQuery0, ($myLen-2));

    // creo ed eseguo la query
    $query 'INSERT INTO tabella VALUES(' $myQuery ')';
    @
    mysql_query($query) or die(mysql_error()); 
    Prova con questo e fammi sapere

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909
    no purtroppo non funziona....ma non dovrei specificare i campi del db?

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.