Buenas,
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,