Foros del Web » Programando para Internet » PHP »

Desabilitar el boton mediante consutulta a bd

Estas en el tema de Desabilitar el boton mediante consutulta a bd en el foro de PHP en Foros del Web. Hola eh buscado por horas un codigo que me haga lo siguiente tengo un boton en un form en una web php pero ese boton ...
  #1 (permalink)  
Antiguo 26/09/2012, 08:46
 
Fecha de Ingreso: enero-2004
Mensajes: 72
Antigüedad: 20 años, 3 meses
Puntos: 1
Desabilitar el boton mediante consutulta a bd

Hola eh buscado por horas un codigo que me haga lo siguiente

tengo un boton en un form en una web php pero ese boton debe solo habilitarse si el rut de una persona no esta en la tabla de mysql

ojala alguien me pueda ayudar gracias
  #2 (permalink)  
Antiguo 26/09/2012, 09:11
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Desabilitar el boton mediante consutulta a bd

Si creas el html del botón con botón puedes condicionar para que aparezca o no o esté habilitado o deshabilitado.

Código PHP:
Ver original
  1. if($datos['rut'])
  2.    echo '<button name="miboton" value="HACER" disabled>';
  3. else
  4.    echo '<button name="miboton" value="HACER">';
  #3 (permalink)  
Antiguo 27/09/2012, 05:49
 
Fecha de Ingreso: enero-2004
Mensajes: 72
Antigüedad: 20 años, 3 meses
Puntos: 1
Respuesta: Desabilitar el boton mediante consutulta a bd

no puedo hacerlo ..
:( ...

haber si doy as datos...

cualquier ayuda se agradece..

el rut del usuario donde entrega el rut
Código PHP:
<?php 
 
    session_start
();
    include_once 
"conexion.php";
 

    function 
verificar_login($rut,$clave,&$result)
    {
        
$sql "SELECT * FROM usuario WHERE rut = '$rut' and clave = '$clave'";
        
$rec mysql_query($sql);
        
$count 0;
        while(
$row mysql_fetch_object($rec))
        {
            
$count++;
            
$result $row;
        }
        if(
$count == 1)
        {
            return 
1;
        }
        else
        {
            return 
0;
        }
    }
    if(!isset(
$_SESSION['userid']))
    {
        if(isset(
$_POST['login']))
        {
            if(
verificar_login($_POST['rut'],$_POST['clave'],$result) == 1)
            {
                
$_SESSION['userid'] = $result->idusuario;
                
$_SESSION['username'] = $result->usuario;
                
$_SESSION['name'] = $result->nombres;
                
$_SESSION['type'] = $result->type;
                    
header("location:log_user.php");
            }
            else
            {
                echo 
'<div class="error">Su usuario es incorrecto, intente nuevamente.</div>';
            }
        }
 
        
?>
        
           <form action="index.php" method="post" class="login">
            <div><label>Rut:</label><input name="rut" type="text" value=""></div>
            <div><label>Clave: </label><input name="clave" type="password" value=""></div>
            <input name="login" type="submit" value="entrar"></div>
            </form>
        <?php
    
}
    else
    {
        
        echo 
'<a href="logout.php">Salir</a>';
        
    }
    

?>
y aquí es donde llega " es donde necesito que tome el rut y haga la consulta a una tabla llamada test1 y otra a la tabla llamada test2 si el rut esta en la tabla 1 que el botón para acceder al test 1 este disabled y lo mismo para la test2

Código PHP:
<head>
          <meta charset="utf-8" />
        <title>tab</title>
        <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0" />
        <link rel="stylesheet" href="css/style.css"/>
        <link href="-s" rel="stylesheet" type="text/css" />
       <script type="text/JavaScript">
var procedenciaValida = new Array(

"log_user.php"
);


var ok = false;
for(i in procedenciaValida) {

if(document.referrer.indexOf(procedenciaValida[i]) > -1) {

ok = true; 
}
}
if(!ok) {
document.location.href="log_user.php"; 
}
</script>
<body >
<?php 
    session_start
(); 
    include(
'conexion.php'); 
?>
<?php 
$rut 
$_POST["rut"]; 
echo 
"Tu rut: $rut<p>"
?> 
<p>
<?php
  
echo '<a href="logout.php">Salir</a>';
    
?>
    </span>
    </body>
    </html>
  #4 (permalink)  
Antiguo 27/09/2012, 06:37
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: Desabilitar el boton mediante consutulta a bd

La idea la veo, pero no termino de entender que problema tienes.

Si necesitas tomar una dato de una base de datos, lo tomas mediante una consulta, y después lo tratas para activar o desactivar botones.
(Haces una consulta en el primer código, por lo que la consulta no es el problema creo)

Esos datos se tienen que verificar en cada llamada? Solo cuando está logueado? Solo en determinadas páginas?
- Si es en cada llamada, creas un archivo con la consulta y el resultado y lo tomas mediante include por ejemplo.
- Si solo es cuando está logueado, si pasa el if y creas los datos de session, yo se lo adjuntaría en esa misma variable, después lo podrás tomar desde donde quieras.
- Si es en determinadas páginas, pues igual que el include, pero solo donde lo necesites.

Una vez has conseguido la variable, solo es poner el botón dentro de un if como te comenta ocp001a.

Si en la función, o el include ya determinas el resultado puedes también hacerlo así:
Código PHP:
<?php
//desde una función, variable de session, o include tienes un resultado similar a este
$rut1 true;
?>
<button name="miboton" value="HACER"<?php echo ($rut1)? '' ' disabled';?>>
Si no me he acercado en nada de lo comentado, pues se agradecería que concretases más sobre lo que necesitas.

Pero el concepto básico es ese, 1º consigues el resultado, 2º lo manejas según necesites.

Y las herramientas para obtener los datos o conseguirlos/persistirlos entre páginas están ahí:
include, require, session, post, get

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #5 (permalink)  
Antiguo 27/09/2012, 07:36
 
Fecha de Ingreso: enero-2004
Mensajes: 72
Antigüedad: 20 años, 3 meses
Puntos: 1
Respuesta: Desabilitar el boton mediante consutulta a bd

se agradece tu pronta respuesta....

tratare de hacer ahora..

pero te comento que no le hago mucho a la programacion y todo lo que eh ehcho es casi copy/paste modificando unas cosas

pero creo que estoy logrando interiorisarme .. pero esta situacion me tien medio complicado



pd: sobre cuando deve realizar esto .. solo una vez cuando el usuario se logea.. cada boton lo dirigira a un php distinto "obvio si esta habilitado"

pd: uchasgracias
  #6 (permalink)  
Antiguo 27/09/2012, 09:14
 
Fecha de Ingreso: enero-2004
Mensajes: 72
Antigüedad: 20 años, 3 meses
Puntos: 1
Respuesta: Desabilitar el boton mediante consutulta a bd

con mis pocos conocimiento .. estoy haciendo lo siguiente

pero no me funciona.. porfa ayuda!!!



Código PHP:
<!DOCTYPE html>
<html>
    <head>
          <meta charset="utf-8" />
        <title>tab</title>
        <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0" />
        <link rel="stylesheet" href="css/style.css"/>
        <link href="-s" rel="stylesheet" type="text/css" />
      
         <script type="text/JavaScript">
var procedenciaValida = new Array(

"log_user.php"
);


var ok = false;
for(i in procedenciaValida) {

if(document.referrer.indexOf(procedenciaValida[i]) > -1) {

ok = true; 
}
}
if(!ok) {
document.location.href="log_user.php"; 
}
</script>
<body >
<?php 
    session_start
(); 
    include(
'conexion.php'); 
?>

<?php 
$rut 
$_POST["rut"]; 
echo 
"Tu rut: $rut<p>"
?> 

<?php 
$rut 
$_POST["rut"];  
if(
'function verificar_testm ($rut) = 1')
   echo 
'<button name="miboton" value="HACER" disabled>';
else
  echo 
'<button name="miboton" value="HACER">'
?>

<?php 
    
function verificar_testm($rut)
    {
        
$sql "SELECT * FROM testm WHERE rut = '$rut'";
        
$rec mysql_query($sql);
        
$count 0;
        while(
$row mysql_fetch_object($rec))
        {
            
$count++;
            
$result $row;
        }
        if(
$count == 1)
        {
            return 
1;
        }
        else
        {
            return 
0;
        }
    }
        
?>
</span>
</body>
</html>
  #7 (permalink)  
Antiguo 27/09/2012, 10:34
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: Desabilitar el boton mediante consutulta a bd

Hola KAKOROSAS,

Primero hay que cambiar un poco el planteamiento
1º php
2º html + variables php

De forma que la estructura nos quedaría mas o menos así:
Código PHP:
<?php  
    session_start
();  
    include(
'conexion.php');

    function 
verificar_testm($rut//separarlo del html
    
{
        
//...
    
}

    
//comprobar que trae datos
    //$rut = $_POST["rut"];
    
$rut = (isset($_POST['rut']))? $_POST['rut'] : 'Sin definir';

    
//$rut = $_POST["rut"]; // no es necesario de segunda, ya se ha asignado antes.
    //a partir de aquí podemos generar el html e incluir las variables que queramos imprmir en pantalla.
?>

<html>
    <head>
        <!-- content -->
    </head>
    <body>
        <p>Tu rut: <?php echo $rut ?><p>
        <?php //if( 'function verificar_testm($rut) = 1' ) // incorrecto ?>
        <?php if( verificar_testm($rut) ): // correcto ?>
            <button name="miboton" value="HACER" disabled/>
        <?php else: ?>
            <button name="miboton" value="HACER"/>
        <?php endif; ?> 
    </body>
</html>
He dejado algunos comentarios en el code.

session_start() se debe poner siempre al principio del script.

De esta forma separas el código php del html

Usa mysqli o PDO en vez de mysql.

Sobre el uso de las comillas.

Otra forma que deja algo mas ordenado el código y funciona igual es
Código PHP:
<button name="miboton" value="HACER" <?php echo ( verificar_testm($rut) )? '' ' disabled' ;?>/>
Me extraña que no te ha dado error, o no la has comentado.

Para ver los errores en el navegador, coloca esto al principio, antes de session_start()
Código PHP:
error_reporting(E_ALL);
ini_set("display_errors"1); 
Al menos te da pistas de donde falla.

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #8 (permalink)  
Antiguo 27/09/2012, 11:29
 
Fecha de Ingreso: enero-2004
Mensajes: 72
Antigüedad: 20 años, 3 meses
Puntos: 1
Respuesta: Desabilitar el boton mediante consutulta a bd

ohhhh gracias.. lo voy a ver enseguida

pd: me surgio otro problemita

si te das cuenta en el archivo del log contiene un form...

Código PHP:
<form action="menu.php" method="post" class="login">
            <
div><label>Rut:</label><input name="rut" type="text" value=""></div>
            <
div><label>Clave: </label><input name="clave" type="password" value=""></div>
            <
input name="login" type="submit" value="entrar"></div>
            </
form
cuando coloco <form action="menu.php" o cualquier otra web... me deja de validar y pasa si o si a la otra web ... :(

que hago en este caso...

y vuel a agradecer su tiempo ..
  #9 (permalink)  
Antiguo 27/09/2012, 13:35
 
Fecha de Ingreso: enero-2004
Mensajes: 72
Antigüedad: 20 años, 3 meses
Puntos: 1
Respuesta: Desabilitar el boton mediante consutulta a bd

me costo ..pero me funciono muy bien muchas gracias... ahora tengo el drama con el envio de POST que mecione antes


Cita:
Iniciado por Uncontroled_Duck Ver Mensaje
Hola KAKOROSAS,

Primero hay que cambiar un poco el planteamiento
1º php
2º html + variables php

De forma que la estructura nos quedaría mas o menos así:
Código PHP:
<?php  
    session_start
();  
    include(
'conexion.php');

    function 
verificar_testm($rut//separarlo del html
    
{
        
//...
    
}

    
//comprobar que trae datos
    //$rut = $_POST["rut"];
    
$rut = (isset($_POST['rut']))? $_POST['rut'] : 'Sin definir';

    
//$rut = $_POST["rut"]; // no es necesario de segunda, ya se ha asignado antes.
    //a partir de aquí podemos generar el html e incluir las variables que queramos imprmir en pantalla.
?>

<html>
    <head>
        <!-- content -->
    </head>
    <body>
        <p>Tu rut: <?php echo $rut ?><p>
        <?php //if( 'function verificar_testm($rut) = 1' ) // incorrecto ?>
        <?php if( verificar_testm($rut) ): // correcto ?>
            <button name="miboton" value="HACER" disabled/>
        <?php else: ?>
            <button name="miboton" value="HACER"/>
        <?php endif; ?> 
    </body>
</html>
He dejado algunos comentarios en el code.

session_start() se debe poner siempre al principio del script.

De esta forma separas el código php del html

Usa [URL="http://php.net/manual/es/book.mysqli.php"]mysqli[/URL] o [URL="http://php.net/manual/es/ref.pdo-mysql.php"]PDO[/URL] en vez de [URL="http://php.net/manual/es/function.mysql-query.php"]mysql[/URL].

Sobre el uso de las [URL="http://php.net/manual/es/language.types.string.php"]comillas[/URL].

Otra forma que deja algo mas ordenado el código y funciona igual es
Código PHP:
<button name="miboton" value="HACER" <?php echo ( verificar_testm($rut) )? '' ' disabled' ;?>/>
Me extraña que no te ha dado error, o no la has comentado.

Para ver los errores en el navegador, coloca esto al principio, antes de session_start()
Código PHP:
error_reporting(E_ALL);
ini_set("display_errors"1); 
Al menos te da pistas de donde falla.

Saludos,

Etiquetas: bd, desabilitar, mediante, mysql, tabla, botones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:20.