Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2012
    residenza
    Bologna
    Messaggi
    38

    Inviare due valori con una select

    Ciao a tutti, ho un problema che mi assilla da alcuni giorni.

    Ho la necessità di inserire in mysql con una select due valori in un unica opzione.

    Questo è il mio form:

    codice:
    <form action="updateresult.php" method="post" name="edit" >           
    <div class="row">
        <div class="golcontent">              
            <div class="pull-left">                           
              <select name="eplayer_id" class="tripObject" >
                <option value="%">Seleziona</option>
              <?php 
            $lastteam = "";
    do { 
    ?>
            <?php if ($lastteam != $row_datagoal['tteam'])
        echo '<optgroup label="'.$row_datagoal['name'].'">';
            echo '<option value="'.$row_datagoal['id'].','.$row_datagoal['tteam'].'">'.$row_datagoal['playerName'].'</option>';
            if ($lastteam != $row_datagoal['tteam'])
        echo '</optgroup>';
            $lastteam = $row_datagoal['tteam'];?>
            <?php
    } while ($row_datagoal = mysql_fetch_assoc($datagoal));
      $rows = mysql_num_rows($datagoal);
      if($rows > 0) {
          mysql_data_seek($datagoal, 0);
          $row_datagoal = mysql_fetch_assoc($datagoal);
      }?>
              </select>            
              <input class="inputfieldres" name="ecount" type="text" value="" size="2" maxlength="2"/>
              <input type="hidden" name="ematch_id" value="<?php echo $row_dataresults['id']; ?>"/>               
          </div>
        </div>
    </div>
    AGGIUNGI
              <input class="btnresults" type="submit"  value="Salva" />
              <input type="hidden" name="MM_insert" value="form1" />
    </form>
    E questa è la query che utilizzo per l'inserimento:

    Codice PHP:
    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")){
      
    $newteam explode (","$_POST['eplayer_id']);               
      
    $insertSQL sprintf("INSERT INTO f_matchevents (eplayer_id, eteam_id, ematch_id, ecount) VALUES (%s, %s, %s, %s)"
                         
    GetSQLValueString(trim($newteam[0]), "int"),
                         
    GetSQLValueString(trim($newteam[1]), "int"),
                         
    GetSQLValueString($_POST['ematch_id'], "int"),
                         
    GetSQLValueString($_POST['ecount'], "int"));
      
    mysql_select_db($database_config$config);
      
    $Result1 mysql_query($insertSQL$config) or die(mysql_error());} 
    In questo modo tutto funziona bene, ma il mio problema è che gli elementi del mio form (select compresa) vengono ripetuti tramite uno script js che utilizzo per clonare gli elementi html.

    In pratica il mio utente, prima dell'invio del form, può aggiungere più select.

    E a questo punto mi sono bloccato perchè proprio non riesco a capire come creare correttamente un ciclo per la query.

    Ho provato in questo modo, aggiungendo nel form le "[]" al nome degli elementi html:

    Codice PHP:
    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")){
        for(
    $j=0;$j<count($_POST['eplayer_id'][0]);$j++){        
     
    $insertSQL sprintf("INSERT INTO f_matchevents (eplayer_id, eteam_id, ematch_id, ecount) VALUES (%s, %s, %s, %s)",                        
                           
    GetSQLValueString($_POST['eplayer_id'][0][$j], "int"),
                           
    GetSQLValueString($_POST['eplayer_id'][1][$j], "int"),
                           
    GetSQLValueString($_POST['ematch_id'][$j], "int"),
                           
    GetSQLValueString($_POST['ecount'][$j], "int"));
      
    mysql_select_db($database_config$config);
      
    $Result1 mysql_query($insertSQL$config) or die(mysql_error());}} 
    Ma l'inserimento dei valori non è corretto.

    Se invio con il form solo una select mi restituisce questo errore:

    codice:
    Notice:  Undefined offset: 1
    Se invece invio più select la query va a buon fine ma i due valori inseriti relativi al $_POST['eplayer_id'] sono sbagliati.

    Non so proprio come venirne a capo, qualunque vostro aiuto sarebbe da me molto apprezzato.

    Grazie in anticipo.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Io invece che la virgola userei [|] per separare i dati e nel insert userei esplode
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.