Comunidad de diseño web y desarrollo en internet online

leer el name de un boton desde un formulario y validado

Citar            
MensajeEscrito el 29 Oct 2009 04:19 pm
saludos,,
he realizado una pagina web con php y mysql, primero realice el formulario en html y utilizando php inserte la informacion en mysql, todo funciona bien, en el formulario tengo varios botones que realizan diferentes tareas, en el archivo php dependiendo el nombre del boton hago ciertas cosas, todo funciona bien; ahora inclui dentro del archivo que contiene el formulario un javascript para validar los campos, el problema es que en el archivo php no me toma el nombre del boton... alguna sugerencia.
codigo html


[html]<form action="consultar_mensajero.php" method="post" name="fvalida">
<table width="609" border="0" align="center" bgcolor="#EBEBEB">
<tr bgcolor="#DADADA">
<td width="603">
<span class="Contenido"><strong>&nbsp;&nbsp;&nbsp;CONSULTAR MENSAJERO POR</strong></span><strong>: </strong>
</td>
</tr>
<tr bgcolor="#EBEBEB">
<td height="25">&nbsp;&nbsp;&nbsp;&nbsp;
<input name="campo" type="radio" value="nombre" />
<span class="Estilo18"> Nombre </span><span class="Contenido">
<strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span> &nbsp;&nbsp;&nbsp;
<input name="campo" type="radio" value="movil" />
<span class="Estilo18"> Mobil <span class="Contenido">
<strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span> &nbsp;
<input name="campo" type="radio" value="placa" />
Placa <span class="Contenido"><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span></span>
<input name="texto" type="text" size="30" />
<span class="Estilo18"><span class="Contenido"><strong>&nbsp;
<input name="consultar" type="button" onclick="valida_envia()" class="Contenido" value="IR" />
</strong></span></span><span class="Contenido"><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span> </td>
</tr>
</table>
</form>[/html]



codigo javascript
[java]function grupo(q) {
for ( i = 0; i < q.length; i++ ) {
if (q(i).checked) {
return true
}
}
return false
}

//valido espacios en blanco
function vacio(q) {
for ( i = 0; i < q.length; i++ ) {
if ( q.charAt(i) != " " ) {
return true
}
}
return false
}

//funcion para validar formulario
function valida_envia(){

//valido la eleccion de genero
if (grupo(fvalida.campo)==false){
alert("seleccione el item de busqueda")
return 0;
}
//valido el texto
if (document.fvalida.texto.value.length==0){
alert("Digite el texto a consultar")
document.fvalida.texto.focus()
return 0;
}



//valido espacios en blanco ejecutando la funcion vacio
if (vacio(fvalida.texto.value)==false) {
alert("No se Permiten espacios en blanco")
return 0;
}


//el formulario se envia
document.fvalida.submit();
}

[/java]

codigo PHP
[php]<?php
session_start();
$con= mysql_connect ("localhost","usuario","user");
mysql_select_db("elpuma");
if (isset($_POST['consultar']))
{$campo=$_POST['campo'];
$texto=$_POST['texto'];
$rs = mysql_query("SELECT * FROM mensajero WHERE " .$campo ."='$texto'", $con);
$nReg = mysql_num_rows($rs);
if ($nReg < 2) {
while ($tabla = mysql_fetch_array($rs))
{$ced= $tabla['cedula'];
header("location: form_modifi_mensajero.php?id=$ced");
}
}
else{header("location: list_mensajeros.php?cam=$campo&txt=$texto");
}
}

?>[/php]

nota: tengo archivos mucho mas complejos debido a que contienen mas botones, lo que necesito es validar el formulario y que me envie el nombre del boton... GRACIAS!!!!

Por claudita

11 de clabLevel



Genero:Femenino  

colombia

msie8
Citar            
MensajeEscrito el 29 Oct 2009 05:24 pm
eh probado tu codigo y todo funciona bien, al hacer un echo a las variables $_POST[] estas se imprimen correctamente, es decir que si estas tomando los datos del formulario.

Por NeoCesar

Claber

1415 de clabLevel

14 tutoriales

Genero:Masculino  

Algun lugar dentro de la Matrix (Lima - Perú)

firefox
Citar            
MensajeEscrito el 29 Oct 2009 06:04 pm
El codigo funciona al cambiar el type de button por submit de esta linea
<input name="consultar" type="button" onclick="valida_envia()" class="Contenido" value="IR" />

AL llamar la funcion de javascript no me corre pero lo que puedes hacer es cambiarla por una en php y quedaria asi:

<html>
<?php
function validacion($campo,$texto){

if($campo == ""){
$msg1=" <center><b> Se requiere que seleccione alguna opcion </center></b>";
}else{

if($texto== ""){
$msg1="<center><b> Debe escribir el dato a consultar</center></b>";
}
}
$bandera=1;
return $msg1;



}
?>

<form action=" " method="POST" name="fvalida">
<table width="609" border="0" align="center" bgcolor="#EBEBEB">
<tr bgcolor="#DADADA">
<td width="603">
<span class="Contenido"><strong>&nbsp;&nbsp;&nbsp;CONSULTAR MENSAJERO POR</strong></span><strong>: </strong>
</td>
</tr>
<tr bgcolor="#EBEBEB">
<td height="25">&nbsp;&nbsp;&nbsp;&nbsp;
<input name="campo" type="radio" value="nombre" />
<span class="Estilo18"> Nombre </span><span class="Contenido">
<strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span> &nbsp;&nbsp;&nbsp;
<input name="campo" type="radio" value="movil" />
<span class="Estilo18"> Mobil <span class="Contenido">
<strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span> &nbsp;
<input name="campo" type="radio" value="placa" />
Placa <span class="Contenido"><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span></span>
<input name="texto" type="text" size="30" />
<span class="Estilo18"><span class="Contenido"><strong>&nbsp;
<input name="consultar" type="submit" class="Contenido" value="IR" />
</strong></span></span><span class="Contenido"><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span> </td>
</tr>
</table>
</form>

</html>




<?php
session_start();
$con= mysql_connect ("localhost","usuario","user");
mysql_select_db("elpuma");
if (isset($_POST['consultar'])){
$bandera=validacion($campo,$texto);



$campo=$_POST['campo'];
$texto=$_POST['texto'];
if ($bandera==""){



$rs = mysql_query("SELECT * FROM mensajero WHERE " .$campo ."='$texto'", $con);
$nReg = mysql_num_rows($rs);
if ($nReg < 2) {
while ($tabla = mysql_fetch_array($rs))
{$ced= $tabla['cedula'];
header("location: form_modifi_mensajero.php?id=$ced");
}
}
}else if($bandera!=""){
echo "$bandera";
}
else
{header("location: list_mensajeros.php?cam=$campo&txt=$texto");
}
}


?>



Pruebala y me comentas. :)

El servir nos hace grandes :cool:

Por crmauricio

52 de clabLevel



 

firefox
Citar            
MensajeEscrito el 31 Oct 2009 03:50 pm
crmauricio Gracias por tu respuesta.. dos cosas: 1. la funcion validacion la tuve que colocar en el archivo php no en el html para que funcionara y me mostrara el mensaje de error, el detalle es que yo no quiero que se direccione al archivo php sin que el usuario haya insertado los datos correctamente como se puede hacer con javascrpt. el problema que tengo con java es que no me envia el nombre del boton que pulse o no se como leerlo. Te agradezco cualquier luz!!!

Por claudita

11 de clabLevel



Genero:Femenino  

colombia

msie8
Citar            
MensajeEscrito el 31 Oct 2009 03:57 pm
[quote="NeoCesar"][color=#729FCF]eh probado tu codigo y todo funciona bien, al hacer un echo a las variables $_POST[] estas se imprimen correctamente, es decir que si estas tomando los datos del formulario[/color].[/quote]
las variables se envian correctamente, el detalle es que no me lee el nombre del boton, el no ingresa en este if:
if (isset($_POST['consultar'])){,
debido a que estoy validando el nombre del boton que fue pulsado para enviar el archivo,
en este ejercicio tengo un solo boton pero en la pagina web tengo varios formularios que tienen varios botones, tome este ejemplo por ser el mas corto... Gracias claudita




clabLevel: 10
colombia




_________________

Por claudita

11 de clabLevel



Genero:Femenino  

colombia

msie8
Citar            
MensajeEscrito el 31 Oct 2009 07:54 pm
Bueno lo que hice para probar tu script fue lo siguiente y valida todas las opciones que tu quieres:

Cree una tabla en mysql para probar las consultas por Nombre Movil y Placa:



CREATE TABLE `mensajero` (
`idmensajero` int(3) NOT NULL auto_increment,
`nombre` varchar(50) collate latin1_general_ci NOT NULL,
`movil` varchar(30) collate latin1_general_ci NOT NULL,
`placa` varchar(30) collate latin1_general_ci NOT NULL,
PRIMARY KEY (`idmensajero`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=3 ;


luego (consultar_mensajero.php) quedo asi:

<?php
function validacion($campo,$texto){

if($campo == ""){
$msg1=" <center><b> Se requiere que seleccione alguna opcion </center></b>";
}else{

if($texto== ""){
$msg1="<center><b> Debe escribir el dato a consultar</center></b>";
}
}
$bandera=1;
return $msg1;



}
?>

<form action=" " method="POST" name="fvalida">
<table width="609" border="0" align="center" bgcolor="#EBEBEB">
<tr bgcolor="#DADADA">
<td width="603">
<span class="Contenido"><strong>&nbsp;&nbsp;&nbsp;CONSULTAR MENSAJERO POR</strong></span><strong>: </strong>
</td>
</tr>
<tr bgcolor="#EBEBEB">
<td height="25">&nbsp;&nbsp;&nbsp;&nbsp;
<input name="campo" type="radio" value="nombre" />
<span class="Estilo18"> Nombre </span><span class="Contenido">
<strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span> &nbsp;&nbsp;&nbsp;
<input name="campo" type="radio" value="movil" />
<span class="Estilo18"> Mobil <span class="Contenido">
<strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span> &nbsp;
<input name="campo" type="radio" value="placa" />
Placa <span class="Contenido"><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span></span>
<input name="texto" type="text" size="30" />
<span class="Estilo18"><span class="Contenido"><strong>&nbsp;
<input name="consultar" type="submit" class="Contenido" value="IR" />
</strong></span></span><span class="Contenido"><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span> </td>
</tr>
</table>
</form>

</html>




<?php
session_start();
$con=mysql_connect ("localhost", "usuario",
"clave") ;
mysql_select_db ("tu base de datos");
if (isset($_POST['consultar'])){
$bandera=validacion($campo,$texto);



$campo=$_POST['campo'];
$texto=$_POST['texto'];
if ($bandera==""){



$rs=mysql_query("SELECT * FROM mensajero WHERE " .$campo ."='$texto'", $con);
$nReg = mysql_num_rows($rs);
if ($nReg < 2) {
while ($tabla = mysql_fetch_array($rs))
{$ced= $tabla['idmensajero'];
header("location: form_modifi_mensajero.php?idmensajero=$ced");
}
}
}else if($bandera!=""){
echo "$bandera";
}
else
{header("location: list_mensajeros.php?cam=$campo&txt=$texto");
}
}


?>


Luego (form_modifi_mensajero.php) quedo asi:



<?php


echo "<center>";
echo "<table border=1>";
echo "<tr> <th> Nombre <th> Movil <th> Placa ";

$i = 0;

$con=mysql_connect ("localhost", "usuario",
"clave") ;
mysql_select_db ("tu base de datos");
$sql = "select * from mensajero where idmensajero='$idmensajero'";
$cursor = mysql_query( $sql,$con );
while( $row = mysql_fetch_array( $cursor ) ){
$nom = $row["nombre"];/*Nombre del mensajero*/
$mov = $row["movil"];/*Mobil del mensajero*/
$pla = $row["placa"];/* Placa del mensajero*/
$i++;
echo "<tr> <td>
$nom <td> $mov <td> $pla ";
}
echo "</table>";

echo "Numero de registros devueltos $i </center>";


?>

Y listo me valida los campos y me direcciona la consulta con la variable que tu le pasas a la consulta por url:
form_modifi_mensajero.php?idmensajero=$ced"
al formulario
form_modifi_mensajero.php

Corriendo y Funcionando.

El servir nos hace grandes :cool:

Por crmauricio

52 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.