Hola amigos,
Estoy haciendo un administrador de contenidos de una web y me ha surgido un problema con un formulario que no hay manera que realice un UPDATE.
Explico el tema, aunque disculparme de antemano porque es un pelin largo.
Tengo una pagina en salas.php con un select option con diferentes tipos de salas de reunión. Cuando escojes la opción en el select, éste, llama a un archivo javascript (getsala.js) y devuelve en la misma pagina(sala.php) (en un div predeterminado) la información de la sala de reunión, con un formulario para poder cambiar datos de las salas (getsala.php). El problema es que en el formulario de getsala.php, cuando hago submit no modificada el registro. Os dejo los códigos por si alguien pudiera ver donde está el error.
Sala.php
Código:
<div id="datos" style="font-family:arial; font-size:12px; color:#333;">
<form name="formsalas" method="post" >
Salas dadas de alta:<br />
<?
$id=$_GET['id_centro'];
$sala ="select Nombre_sala, id_sala from salas where id_centro='$id'" or die(mysql_error());
$resultado=mysql_query($sala) or die( mysql_error() );
?>
<select name="salas" style="border:1px solid #ccc;" onchange="showUser(this.value)">
<option selected="selected">Escoja la sala </option >
<?
//Mostrar los registros en forma de menú desplegable
while ($row=mysql_fetch_array($resultado)){
echo '<option value="'.$row['id_sala'].'">'.$row["Nombre_sala"].'</option>';
}
echo "</select><br/><br/>";
echo"<div id='txtHint' style='width:auto; height:auto; '><b>Elija La Sala para Cargar info.</b></div>";
?>
</select>
</form>
Formulario para hacer update del registro
Código:
<?php
include('conexion.php');
$q=$_GET["q"];
$sql="SELECT * FROM salas WHERE id_sala ='$q'";
$result = mysql_query($sql);
$row=mysql_fetch_array($result);
$id_centro=$row['id_centro'];
$id_sala=$row['id_sala'];
$nombresala=$row['Nombre_sala'];
$descripcion=$row['Descripcion'];
$metros=$row['metros'];
$capacidad=$row['capacidad'];
$precio=$row['Precio'];
echo "<form action='updatesalas.php' method='post'>";
echo "<input type=\"hidden\" name=\"id_centro\" value='$id_centro'><br/>";
echo "<input type=\"hidden\" name=\"id_sala\" value='$id_sala'><br/>";
echo "Nombre Sala<br/>";
echo "<input type=\"text\" name=\"Nombre_sala\" value='$nombresala' style='border:1px solid #ccc;'><br/>";
echo "Descripcion<br/>";
echo "<textarea name=\"Descripcion\" cols=\"50\" rows=\"20\" >$descripcion</textarea><br/>";
echo "Metros:<br/>";
echo "<input type=\"text\" name=\"metros\" value='$metros' style='border:1px solid #ccc;'><br/>";
echo "Capacidad:<br/>";
echo "<input type=\"text\" name=\"capacidad\" value='$capacidad'style='border:1px solid #ccc;' ><br/>";
echo "Precio:<br/>";
echo "<input type=\"text\" name=\"Precio\" value='$precio' style='border:1px solid #ccc;'><br/><br/>";
echo "<input name='modificar' type='submit' value='modificar datos' style='border:1px solid #69c; background:#69c; color:#fff;'>";
echo "</form>";
?>
Archivo php que se encarga de realizar el update
Código:
<?php
// Configura los datos de tu cuenta
// Conexión a la base de datos
mysql_connect ($dbhost, $dbusername, $dbuserpass);
mysql_select_db($dbname) or die("Cannot select database");
// Preguntaremos si se han enviado ya las variables necesarias
if (isset($_POST["id_sala"])) {
$id_centro =$_POST['id_centro'];
$id_sala=$_POST['id_sala'];
$nombresala=$_POST['Nombre_sala'];
$descripcion=$_POST['Descripcion'];
$metros=$_POST['metros'];
$capacidad=$_POST["capacidad"];
$precio=$_POST['Precio'];
//Todo parece correcto procedemos con la inserccion
$query = "UPDATE salas SET Nombre_sala='$nombresala', Descripcion='$descripcion', metros='$metros', capacidad='$capacidad', Precio='$precio' WHERE id_sala='$id_sala'";
mysql_query($query) or die(mysql_error());
$_SESSION["centro"] = $row['id_centro'];
print "<script>";
print " self.location='business-centers-salas.php?id_centro=$id_centro'";
print "</script>";
}
?>
Si alguien ve el porque no funciona se lo agradecería. Gracias por todo.