Tengo un problema con el tema del foreach, pues necesito pasar y subir a la base de datos más de un array.
Me explico.
Actualmente, muestro una lista de servidores que se seleccionan con checkbox. Entonces, al seleleccionar uno o varios, estos, se suben a una tabla de la BD especificamente diseñada para eso.
Todo bien, el uso del foreach lo utilizo antes de el INSERT y me funciona perfectamente.
El problema es que ahora he hecho que al seleccionar un checkbox, se muestre un input, si seleccionamos dos checkbox, dos inputs y asi sucesivamente.
Entonces quiero que si seleccionamos dos checkbox, o sea, elegimos dos servidores, aparezcan dos input text pàra escribir unos enlaces.
Todo sale perfecto con el código actual que tengo. El problema surje a la hora de subirlo a la tabla y es que me sube los servidores seleccionados, pero no me sube los enlaces o lo que escriba en los input.
Y todo eso, es porque seguro hago mal el foreach.
Este es el codigo actual:
Código Listamos:
Ver original
<style> .hideable { position: relative; visibility: visible; } </style> <script type="text/javascript"> <!-- function showMe (it, box) { var vis = (box.checked) ? "block" : "none"; document.getElementById(it).style.display = vis; } //--> </script> <tr> <td>Servidor:</td> <td> <?php $sql = "SELECT * FROM servidores ORDER BY id"; $res = do_sql ($sql); $i=0; while ($row = mysql_fetch_array($res)) { $i++; $ide = $row['nom_serv']; $imagenserv = $row['imagen_serv']; ?> <input type="checkbox" name="id_servidor[]" onclick="showMe('div1<?php echo $i ?>', this)" value="<?php echo $row['id_servidor']?>"><?php echo $ide; ?><br /> <div id="div1<?php echo $i ?>" style="display:none"> <SPAN ID="contenido" CLASS="hideable"> Enlace:<INPUT TYPE='text' NAME='enlace[]' SIZE=15 MAXLENGTH=100> </FORM> </SPAN> </div> <?php } ?> </td> </tr>
Como hemos observado, listamos los servidores que tengo, la funcion esa del enlace...
Y aqui tenemos el código para insertar:
Código Segundo paso:
Ver original
$id_servidor=$_POST['id_servidor']; $enlace=$_POST['enlace']; foreach ($id_servidor as $ide) { foreach ($enlace as $ide) { $connection=mysql_connect("localhost","root","pass") or die("Error conectando a la base de datos"); $db=mysql_select_db("deffer",$connection) or die ("Error seleccionando la base de datos"); $query="INSERT INTO servidores1 (id_servidor,nombre_servidor,img_servidor,enlace,id_p) values ('$ide','$nombre_s','$imagen','$enlace','$id_p')"; $result=mysql_query($query) or die (mysql_error()); } }
La id del servidor, nombre del servidor... todo eso me lo inserta correctamente, pero en el tema del input enlace no :S
Seguro que el problema esta en el foreach, que no se hace de esa manera si quiero caputrar dos arrays, ¿verdad?
¿Como lo puedo hacer?
Muchas gracias,