Problemas con javascript

Hola jorvidu,
a lo mejor no me puedes ayudar pero como hay código php a lo mejor tengo un fallo o algo.
Te comento, hago una consulta según tres campos. Si la consulta la hago con dni o usuario todo va bien, pero si la hago por nombre y apellido no me ejecuta el código javascript.
La consulta la hace correctamente pero no entiendo porque falla en javascript.
No lo entiendo porque ese código lo ejecuta indiferentemente como hagas la búsqueda.
Te pongo el código:
<?php
session_start();
if (isset($_SESSION['usuario']))
{
    include("../conectar.php");
    $dni = $_REQUEST['dni'];
    $user = $_REQUEST['user'];
    $nom = $_REQUEST['nom'];
    $ape =  $_REQUEST['ape'];
    $tipo = $_REQUEST['tipo'];
    $db = conectar();
    if ($dni != "")     
    $seleccion="select dni,nombre,apellidos,usuario from registrado where dni='".$dni."' and estado='Alta' and tipo='".$tipo."'";
    else
    {
        if ($user != "")    
        $seleccion="select dni,nombre,apellidos,usuario from registrado where usuario='".$user."' and estado='Alta' and tipo='".$tipo."'";
        else                    
        $seleccion="select dni,nombre,apellidos,usuario from registrado where nombre='".$nom."' and apellidos='".$ape."' and estado='Alta' and tipo='".$tipo."'";                
    }
    $rs=consulta($db,$seleccion);
    if($rs->RecordCount()!=0 && $rs->RecordCount()!= -1)
    {            
?>
<script type="text/javascript">
        document.getElementById('dni').value= "<?php echo $rs->fields[0];?>";
        document.getElementById('nombre').value= "<?php echo $rs->fields[1];?>";
        document.getElementById('ape').value= "<?php echo $rs->fields[2];?>";
        document.getElementById('user').value= "<?php echo $rs->fields[3];?>";
        document.getElementById('b_baja').disabled = false;
        document.getElementById('dni').setAttribute("readOnly","readOnly") ;
        document.getElementById('nombre').setAttribute("readOnly","readOnly") ;
        document.getElementById('ape').setAttribute("readOnly","readOnly") ;
        document.getElementById('user').setAttribute("readOnly","readOnly") ;
        

</script>
<?php
    }
    else
    {
    ?>
<script type="text/javascript">
        alert("El usuario no existe o esta dado de baja");
    //    document.location.href="http://localhost/director.php";
    </script>
<?php
    }
    close($rs);
    close($db);
}
?>

Lo que esta en negrita es la parte que no hace cuando la búsqueda es por nombre. La consulta la hace bien, lo he comprobado.

1 Respuesta

Respuesta
1
Tienes la cadena de is elses, mal construida, nunca se llega a entrar a la consulta... compruébalo y me cuentas
Las llaves están bien y la consulta la hace, eso ya estaba comprobado.
Es más si comentas el código javascript e imprimes los valores de la consulta son correctos.
Por eso no lo entiendo porque ese código es común indipendientemente de la búsqueda.
Lo único que cambia es la consulta y eso lo hace bien.
Pero el Javascript solo se va a mostrar si se cumple esto:
if($rs->RecordCount()!=0 && $rs->RecordCount()!= -1)
    {
Es decir, si el resultado no está vacío... comprueba que pasa o no pasa por ahí, haciendo un echo en php
Eso lo tengo para que imprima los datos si hay datos de la consulta.
PAra que veas el código al ejecutar:
<script type="text/javascript">
document.getElementById('dni').value= "78884488A";
document.getElementById('nombre').value= "Monica";
document.getElementById('ape').value= "Ampudia Roncero Diez";
document.getElementById('user').value= "monica_a_r";
document.getElementById('b_baja').disabled = false;
document.getElementById('dni').setAttribute("readOnly","readOnly") ;
document.getElementById('nombre').setAttribute("readOnly","readOnly") ;
document.getElementById('ape').setAttribute("readOnly","readOnly") ;
document.getElementById('user').setAttribute("readOnly","readOnly") ;
</script>
A lo mejor así ves algo más
A ver si me aclaro, me dices que ese código no se ejecuta si buscas por nombre o apellido. OK, cuando haces esa búsqueda, te sale el resultado que me muestras, ¿no?, ¿Entonces no sale bien?... ¿O esa es una respuesta cuando buscas por DNI?...
Creo que el tema es que estás haciendo la búsqueda buscando nombre o apellido exacto, no te encuentra nada y entonces no te ejecuta el Javascript porque no encuentra resultados.
Has probado la búsqueda por nombre y apellidos usando LIKE en la consulta ¿?
Eso es lo que me sale cuando hago la búsqueda con nombre y apellidos pero no salen los datos en los campos. Viendo el código parece que si lo ejecuta pero lo único que se ve es que php se ejecuta pero la parte javascript no(a mi parecer).
Acabo de ver que si en vez de cargar la página(load) si abro otra nueva(window.open) la búsqueda por dni no me funciona tampoco.
¿Pero para que voy hacer la consulta con LIKE? ¿Si lo que necesito es un registro concreto?
Creo que tengo que tener algún fallo con javascript, porque esta bien hecho la impresión, ¿no? ¿Me refiero el código embebido de javascript y php esta bien?
Entonces el problema es que el javascript no te está haciendo nada, ¿no?, que haces con el javascript ese, para que lo usas, ¿completas datos con el o algo?
A ver si me puedes concretar
COn javascript lo que hago es cargar los campos del formulario con los datos sacados de la base de datos.
document.getElementById('dni').value= "<?php echo $rs->fields[0];?>";
Es eso no ejecuta javascript. Acabo de probar a comentar todo el código javascript y dejar php:
<script type="text/javascript">
<?php echo $rs->fields[0];?>
//    document.getElementById('dni').value= "<?php echo $rs->fields[0];?>//";
        //document.getElementById('nombre').value= "<?php echo $rs->fields[1];?>//";
        //document.getElementById('ape').value= "<?php echo $rs->fields[2];?>//";
        //document.getElementById('user').value= "<?php echo $rs->fields[3];?>//";
    //    document.getElementById('b_baja').disabled = false;
        //setReadonly('dni|nombre|ape|user');
        //document.getElementById('buscar').disabled = true;
        //document.getElementById('reseteo').disabled = 'disabled';
        /*
        document.getElementById('dni').setAttribute("readOnly","readOnly") ;
        document.getElementById('nombre').setAttribute("readOnly","readOnly") ;
        document.getElementById('ape').setAttribute("readOnly","readOnly") ;
        document.getElementById('user').setAttribute("readOnly","readOnly") ;
        */
</script>
Pero tampoco me imprime los echo. Sin embargo si lo pongo dentro de un alert si saca los datos. Y si veo el código fuente obtengo esto:
script type="text/javascript">
78884488P//document.getElementById('dni').value= "78884488P//";
//document.getElementById('nombre').value= "Monica//";
//document.getElementById('ape').value= "Ampudia Roncero Diez//";
//document.getElementById('user').value= "monsa//";
//document.getElementById('b_baja').disabled = false;
//setReadonly('dni|nombre|ape|user');
//document.getElementById('buscar').disabled = true;
//document.getElementById('reseteo').disabled = 'disabled';
/*
document.getElementById('dni').setAttribute("readOnly","readOnly") ;
document.getElementById('nombre').setAttribute("readOnly","readOnly") ;
document.getElementById('ape').setAttribute("readOnly","readOnly") ;
document.getElementById('user').setAttribute("readOnly","readOnly") ;
*/
</script>
Lo que haces en ese javascript es asignar los datos a campos suyo id es el indicado en cada linea de PHP. ¿Has creado campos con el id adecuado?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas