Buenas,
Estoy teniendo problemas con un sistemilla que estoy montando.
Explico:
Tengo un formulario donde aparece una zona llamada
Servidores, en esta zona, aparecen
2 Checkboxes con su correspondientes nombres.
Mediante javascript, hago que cuando se seleccione un checkbox aparezca una caja de texto, o sea, un input text donde el usuario pondra el enlace del servidor.
Luego lo subo a la base de datos
utilizando foreach porque el usuario puede
escojer 1 o los 2 servidores.
La base mas o menos se queda así:
id = 1
id_servidor = 1
enlace = www.demo.com
id = 2
id_servidor = 2
enlace = www.demo2.com
Todo me funciona correctamente, no me da ningun problema, lo que sucede es que ahora he pensado,
¿y sí un servidor dispone de más enlaces?.
Entonces, se me ha ocurrido poner
varios input text. Asi que lo unico que he hecho ha sido agregar un input text más, pero no me ha funcionado, puesto que todo lo demas se sube correctamente, pero
el campo enlace SOLO se sube el ultimo enlace que se haya escrito. Así lo tengo; Javascript y css para el efecto de ocultación de los input text:
Código 1:
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;
}
//-->
Parte del formulario donde se establecen los servidores:
Código 2:
Ver original<tr>
<td>Servidor:</td>
<td>
<?php
$sqlServidores=mysql_query("SELECT * FROM oc_servidores ORDER BY id",$conexion);
$i=0;
while($MostrarFilaServidores=mysql_fetch_array($sqlServidores)){
$i++;
$ide = $MostrarFilaServidores['id'];
$nombre = $MostrarFilaServidores['nom_serv'];
?>
<input type="checkbox" name="id_serv[<?php echo $MostrarFilaServidores['id_serv']; ?>]" onclick="showMe('div1<?php echo $i ?>', this)" value="<?php echo $MostrarFilaServidores['id_serv']?>"><?php echo $nombre; ?><br />
<div id="div1<?php echo $i ?>" style="display:none">
<SPAN ID="contenido" CLASS="hideable">
Enlace:<INPUT TYPE="text" NAME="enlace[<?php echo $MostrarFilaServidores['id_serv']; ?>]" SIZE="15" MAXLENGTH="100"><br>
Enlace:<INPUT TYPE="text" NAME="enlace[<?php echo $MostrarFilaServidores['id_serv']; ?>]" SIZE="15" MAXLENGTH="100"><br>
</FORM>
</SPAN>
</div>
<?php
}
?>
</td>
</tr>
Y aqui el insert:
Código 3:
Ver original$id_servidor=$_POST['id_serv'];
$enlaces=$_POST['enlace'];
foreach ($id_servidor as $indice => $valor) {
echo "{$id_servidor[$indice]} : {$enlaces[$indice]}<br />";
$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 oc_servers_pel1 (id_servidor,enlace) values ('$id_servidor[$indice]','$enlaces[$indice]')";
$result=mysql_query($query) or die (mysql_error());
}
Como dijé, si tan solo dejo uno:
Enlace:<INPUT TYPE="text" NAME="enlace[<?php echo $MostrarFilaServidores['id_serv']; ?>]" SIZE="15" MAXLENGTH="100"><br>
Me funciona, pero como deje dos, todo me funciona, pero solo se sube el ultimo enlace que se haya escrito.
¿Porque no lo recoje bien?
Muchas gracias, una vez más