Buenas noches a todos, es mi primer tema creado, estoy comenzando programacion y tengo un temita con los formularios (lo puse en php porque tengo entendido que se soluciona aca), tengo mi servidor apache funcionando en linux, laburo con eclipse y todo anda de maravillas, el problema es que no se como hacer una funcion, quiero que el formulario valla "mostrando" o "desocultando" los botones submit que tengo segun haga falta, ejemplo. si no tengo datos cargados en los campos, no aparezca ningun boton, si cargo algun dato (validado ya) que me habilite el submit agregar solamente, si selecciono para modificar alguno de la lista (linkea mediante post, y con javascript hice que los muestre en los campos para ser modificados) que solo aparezca el boton guardar, cancelar o borrar, etc. espero ser claro, espero sus sugerencias.
Tenia pensado hacerlo mediante js:
// onKeyPress="if (this.value!=='') {document.form1.boton_agregar.type='submit'; }
o bien en PHP en cada "CASE" del switch, pero tampoco se como "valido" que los campos del formulario en html estan vacios, solo se hacerlo mediante javascript, ya que si llamo a los campos como $xxxx variable del campo me trae la q este en ese momento, y no podria identificar nunca si esta vacio.
Nota: hasta el momento todo anda perfectamente, solo quiero agregar ese chiche.
mi codigo es este:
<? // Incluye el codigo encontrado en funciones.php
include ("./funciones.php");
conectardb(); //llama a la funcion conectardb (loguea y selcciona db)
?>
<?php
IF (ISSET($_POST)) { // si la variable esta inicializada $_post es un cajon con datos adentro
foreach ($_POST as $var => $val){ // para cada $_post que asigne los valores a la variable $var y le de el valor $val, luego
$$var = $val; //convierte el nombre del campo en variable ($_POST[codigo] lo transforma en $codigo
//echo "POST".$var."<BR>";
}
}
switch ($quehacer) {
case "agregar":
$sqladd = "INSERT INTO productos (codigo,descripcion) VALUES ('$codigo','$descripcion')"; //inserta un nuevo registro, donde le dice que valores (values) darle en codigo y descr..)
$consulta = mysql_query($sqladd);
unset($descripcion);
unset($codigo);
break;
case "modificar":
$sql = "UPDATE productos set descripcion = '$descripcion', codigo = '$codigo' WHERE id='$id'" ; // se modifica un registro, donde set dice que es lo q cambia, y where dice la condicion (porque sino borraria todos los registros)
$consulta = mysql_query($sql);
unset($descripcion);
unset($codigo);
break;
case "borrar":
$sqldel = "DELETE FROM productos WHERE id='$id'" ;
$consulta = mysql_query($sqldel);
unset($descripcion);
unset($codigo);
break;
case "listar":
break;
}
// onKeyPress="if (this.value!=='') {document.form1.boton_agregar.type='submit'; }"
// onKeyPress="if ((this.value!=='') && (document.form1.codigo.value!=='')) {document.form1.boton_agregar.type='submit'; }"
// onclick="document.form1.quehacer.value='agregar'; if (document.form1.codigo.value=='') {alert('No hay datos cargados en el campo nombre');return false} else {if (document.form1.descripcion.value=='') {alert('No hay datos cargados en el campo descripcion');return false}}; ">
?>
<form name=form1 ACTION='<?php $PHP_SELF ?>' METHOD='POST'>
Codigo: <input name=codigo type="text" value='<?php echo $codigo?>' >
Descripcion: <input name=descripcion type="text" value='<?php echo $descripcion?>' >
<input name=id type="hidden" value='<?php echo $id?>'>
<input type="hidden" name="quehacer" >
<input type="submit" name="boton_agregar" value="Agregar" onclick="document.form1.quehacer.value='agregar'; if ((document.form1.codigo.value=='') || (document.form1.descripcion.value=='')) {alert('Por favor complete todos los campos obligatorios !!');return false}; ">
<input type="submit" name="boton_borrar" value="Borrar" onclick="if ((document.form1.codigo.value=='') || (document.form1.descripcion.value=='')) {alert('No selecciono ningun registro para borrar !!');return false}; if (confirm('Esta seguro que quiere eliminar <?php echo"$codigo ", "$descripcion" ?> ?')) {
document.form1.quehacer.value='borrar';} else {document.form1.codigo.value='';
document.form1.descripcion.value='';document.form1 .submit()}">
<input type="submit" name="boton_guardar"value="Guardar" onclick="if (confirm('Esta seguro que quiere modificar <?php echo"$codigo ", "$descripcion" ?> ?')) {
document.form1.quehacer.value='modificar';}else {document.form1.codigo.value='';
document.form1.descripcion.value='';document.form1 .submit()}">
<?php // esto anterior pregunta en los botones de borrar y modificar si realmente quiere realizar la accion, sino que borre los campos y no haga nada?>
</form>
<html>
<head>
<title> --== AGENDA ==--</title>
</head>
<body>
<?
$resultado = mysql_query("SELECT * FROM productos"); // le asigna todo lo encontrado en la tabla productos a la variante $resultado
$num_rows = mysql_num_rows ($resultado); // nos dice cuantas filas tiene la tabla "$resultado" (lo encontrado desde el select)
echo "<br>Hay actualmente $num_rows registros en tu base de datos"; // muestra en pantalla cuantas filas son (en texto)
echo "<br><br><table border=1>\n"; // muestra bordes de la tabla
while ($a_row = mysql_fetch_row ($resultado)) // nos asigna a $a_row la matriz que necesita para la tabla $resultado
{$codigo = "caca";
echo "<tr><td> <img title='Modificar' src='./images/up.png' onclick=\"document.form1.quehacer.value='listar';
document.form1.id.value='$a_row[0]';
document.form1.codigo.value='$a_row[1]';
document.form1.descripcion.value='$a_row[2]';document.form1.boton_borrar.type='submit';docume nt.form1.submit()\"> </td>
<td> <img title='Eliminar' src='./images/x.png' onclick=\"if (confirm('Esta seguro que quiere eliminar el registro $a_row[1] $a_row[2] ?'))
{document.form1.quehacer.value='borrar'; document.form1.id.value='$a_row[0]';
document.form1.submit()} else {document.form1.codigo.value='';
document.form1.descripcion.value='';document.form1 .submit()} \" </td>";
foreach ($a_row as $field)
echo "\t<td>$field</td>\n";
echo "</tr>\n";
}
echo "</table>\n";
mysql_close($link);
?>
</body>
</html>
Gracias, saludos desde Tierra del Fuego, Argentina.
Renzo