Ver Mensaje Individual
  #6 (permalink)  
Antiguo 22/08/2006, 12:25
Kailea
 
Fecha de Ingreso: marzo-2004
Ubicación: Sureste
Mensajes: 186
Antigüedad: 20 años, 2 meses
Puntos: 0
El caso es que son varios checkbox de diferente name.

El formulario es el siguiente:

Código PHP:
<h2>Talleres post-venta</h2>
<br />
<form action="transact-article.php" method="POST" >
<p>Taller:</p>
<p><input type="text" class="nombre" name="nombre" size="80" maxlength="500" value="<?php echo htmlspecialchars($nombre); ?>" /></p>
<p>Contacto:</p>
<p><input type="text" class="contacto" name="contacto" size="80" maxlength="500" value="<?php echo htmlspecialchars($contacto); ?>" /></p>
<p>Dirección:</p>
<p><input type="text" class="direccion" name="direccion" size="80" maxlength="500" value="<?php echo htmlspecialchars($direccion); ?>" /></p>
<p>Código Postal:</p>
<p><input type="text" class="cp" name="cp" size="5" maxlength="500" value="<?php echo htmlspecialchars($cp); ?>" /></p>
<p>Población:</p>
<p><input type="text" class="poblacion" name="poblacion" size="80" maxlength="500" value="<?php echo htmlspecialchars($poblacion); ?>" /></p>
<p>Provincia:</p>
<select name="nomprov"> 
<?php
   $sql_padre
="SELECT * FROM motor_provincias ORDER BY provincia "
   
$padre mysql_query($sql_padre,$conn) or die(mysql_error()); 
       while (
$row=@mysql_fetch_array($padre)){ 
         echo 
"<option value=\"".$row['id']."\">".$row['provincia']."</option>\n"
    } 
?>

</select>
<p>Teléfono:</p>
<p><input type="text" class="telefono" name="telefono" size="9" maxlength="500" value="<?php echo htmlspecialchars($telefono); ?>" /></p>
<p>Fax:</p>
<p><input type="text" class="fax" name="fax" size="9" maxlength="500" value="<?php echo htmlspecialchars($fax); ?>" /></p>
<p>e-mail:</p>
<p><input type="text" class="email" name="email" size="80" maxlength="500" value="<?php echo htmlspecialchars($email); ?>" /></p>
<br /><p style="font-weight:bold">Marca:</p>
<?
    $sql
='select * from motor_marca ORDER BY marca';
    
/*Asumiendo que se usa MySQL (se puede cambiar facilmente a otra db)*/
    
$rs=mysql_query($sql);
           
/*Recorrer todos las entradas */
           
while($row=mysql_fetch_array($rs)){
        
/* Imprimir campo a mostrar*/
            
echo '<p><input type="checkbox" name="nommarca[]" value="'.$row['id'].'">'.$row['marca'].'</p>';
            }
?>

<br /><p style="font-weight:bold">Tipo de servicio:</p>
<?
    $sql
='select * from motor_servicio ORDER BY servicio';
    
/*Asumiendo que se usa MySQL (se puede cambiar facilmente a otra db)*/
    
$rs=mysql_query($sql);
           
/*Recorrer todos las entradas */
           
while($row=mysql_fetch_array($rs)){
        
/* Imprimir campo a mostrar*/
            
echo '<p><input type="checkbox" name="nomservicio[]" value="'.$row['id_servicio'].'">'.$row['servicio'].'</p>';
            }
?>

<p style="font-weight:bold">Tipo de producto:</p>
<br />
<?
    $sql
='select * from motor_productos ORDER BY producto';
     
$rs=mysql_query($sql);
   
           while(
$row=mysql_fetch_array($rs)){
                   echo 
'<p><input type="checkbox" name="nomprod[]" value="'.$row['id_producto'].'">'.$row['producto'].'</p>';
            }
?>

<br />
<br/>
<?php

echo '<input type="hidden" name="taller" value="' $taller "\" />\n";
    if (
$_SESSION['access_lvl'] < 2) {
        echo 
'<input type="hidden" name="autorid" value="' $row['autor_id'] . "\" />\n";
    }
    if (isset(
$_GET['article'])) {
        echo 
'<input type="submit" class="submit" name="action" ' "value=\"Guardar los cambios\" />\n";
    } else {
        echo 
'<input type="submit" class="submit" name="action" ' "value=\"Enviar\" />\n";
    }
?>

</form>
¿Debería recogerlos así?
Código PHP:

//Primero recojo los datos e inserto los datos del taller en la tabla de talleres
if (isset($_POST['nombre']) and isset($_POST['direccion'])    and isset($_POST['autorid']) and isset($_POST['nomprov']) and ($_POST['telefono'])){
    
$sql "INSERT INTO motor_talleres (id_taller, nombre, contacto, direccion, cp, poblacion,provincia_id,telefono,fax,email,$marca,servicio_id,subcategoria_id)  VALUES ('','".$_POST['nombre']."','".$_POST['contacto']."','".$_POST['direccion']."','".$_POST['cp']."','".$_POST['poblacion']."','".$_POST['provincia_id']."','".$_POST['telefono']."','".$_POST['fax']."','".$_POST['email']."')";
        
mysql_query($sql$conn) or die('No se puede enviar el artículo; ' mysql_error());

// ahora recojo los checkbox

foreach($_POST['nommarca'] as $indice=>$valor) { 
$marca[]= $indice
$values[]= "'$valor'"


$marcaimplode(", "$marca); 
$valuesimplode(", "$values); 

foreach(
$_POST['nomservicio'] as $indiceserv => $valorserv){
$servicio[]=$indiceserv;
$valueserv[]="'$valorserv'";
}
$servicio=implode("," $servicio);
$valueserv implode("," $valueserv);

foreach(
$_POST['nomprod'] as $indiceprod => $valorprod){
$producto[]=$indiceprod;
$valueprod[]="'$valorprod";
}
$producto=implode("," $producto);
$valueprodimplode("," $valueprod);

$sql="INSERT INTO motor_link (id, taller_id,marca_id,servicio_id,producto_id) VALUES ('','".$_POST['id_taller']."','$marca,'$servicio','$producto')";

$res=mysql_query($sql,$conn) or die('No se puede enviar el taller';.mysql_error());

            } else {
                echo 
'Debe elegir una categoría <br />';
                }
                
redirect('index.php'); 
Este código no me funciona, y no sé si está bien planteado. No sé qué le sucede a mi PHP que no me muestra ningún error (a ver si también alguien me puede ayudar a verlos) así que no sé por dónde puede fallar. ¿Alguna idea?

Gracias!!!

Kailea