Ocultar/mostrar combobox mediante un textfield php

Experto tengo un formulario donde tengo un un campo de texto(textfield) y un combobox conectada a una base de datos lo que me gustaría saber es como puedo ocultar o mostrar el combobox aque me refiero si tengo mi campo de texto y ingreso un numero y si esta en mi base que muestre el combobox y si no esta en mi base que me oculte el combobox me pondrías un ejemplo sencillo

1 respuesta

Respuesta
1

La problemática que me planteas te la he respondido en esta pregunta.

<a>http://www.todoexpertos.com/mitodoexpertos/question/aokndzfykmsng/bloquear-un-combobox-si-no-esta-en-mi-base-de-datos</a>

Ahora, si deseas ocultar el combobox tienes que dejar la función javascript de esta manera.

$(document).ready(function(){
 $("#numero").blur(function(){
 $.ajax({
 type: "POST",
 url: "valida_numero.php",
 data: { valor: $("#numero").val()}
 })
 .done(function( msg ) {
 if(msg=="true"){
$("#txt_val").html("El numero existe);
$("#empresa").show();
}else{
$("#txt_val").html("el numero no existe");
$("#empresa").hide();
}
 });
 });
});

si de echo ya compare y todo y le hice unas modificaciones pero no me oculta nada ni con el script que me mandaste este script que tengo si me sale el mensaje con una imagen y todo y de echo me sale una ruedita de cargando cuando busca el registro pero mira este es que estoy utilizando pero no me oculta

$(document).ready(function(){
$("#username").blur(function(){
$('#Info').html('<img src="loader.gif" alt="" />').fadeOut(1000);
var username = $(this).val();
var dataString = 'username='+username;
$.ajax({
type: "POST",
url: "validar.php",
data: { valor: $("#username").val()}
})
success: function(data) {
$('#Info').fadeIn(1000).html(data);
}
});
});
});

En el success no está lo que acabo de responderte, fíjate en la función que coloqué en mi última respuesta a esta pregunta.

le quite succes y puse lo que me avías mandado y no hace nada le cambie las variables también a las que tu tenias y nada con el que encontré que tendé en esta pregunta ese si me hace manda el mensaje si esta o no esta pero no me oculta

Enviame el formulario y la función javascript que has implementado, así puedo ver que está fallando.

<?php
include('dbcon.php');?>
<script type="text/javascript" src="jquery-1.3.2.js"></script>
<link href="css.css" media="screen" rel="stylesheet" type="text/css" />
<script type="text/javascript">
$(document).ready(function() {
$('#username').blur(function(){
$('#Info').html('<img src="loader.gif" alt="" />').fadeOut(1000);
var username = $(this).val();
var dataString = 'username='+username;
$.ajax({
type: "POST",
url: "validar.php",
data: dataString,
success: function(data) {
$('#Info').fadeIn(1000).html(data);
//alert(data);
}
});
});
});
</script>

<form name="formulario" id="formulario" action = "" method="post" >
<table width="100%" border="0">
<tr>
<td width="13%">Expediente</td>
<td width="16%"><input name="username" type="text" id="username" onKeyPress="return validar_texto(event)" size="10" maxlength="8"></td>
<td width="27%" height="50"><div id="Info"></div></td>
<td width="44%"><p>
<label></label>
</p> </tr>
<tr>
<td>Empresa</td>
<td><select name="empresa" id="empresa" onKeyPress="modForm(this.value)">
<option value="" selected>Elija Empresa</option>
<option value="Telmex">Telmex</option>
<option value="Bimbo">Bimbo</option>
<option value="Lala">Lala</option>
</select> </td>
<td height="50"><label><br>
<br>
</label></td>
<td><label></label>
<p>&nbsp;</p>
<label></label> </tr>
</table>
<div id="botón">
<p>
<input name="Enviar" type="submit" style="background-color:#999999; color:#FFFFFF" id="Enviar" value="Enviar" onClick="return validarForm(this.form);">
<input name="reset" type="reset" style="background-color: #999999; color:#FFFFFF" value="Limpiar" >
</p>
<p>
</form>

validar.php

<?php
sleep(1);
include('dbcon.php');
if ($_POST){
if($_REQUEST)
{
$username = $_REQUEST['username'];
$query = "select * from datos where username = '".strtolower($username)."'";
$results = mysql_query( $query) or die('ok');
if(mysql_num_rows(@$results) > 0) // not available
{
echo '<div id="Error">Exitoso</div>';
}
else
{
echo '<div id="Success">Empleado NO existe</div>';
}
}
}?>

así tal como te lo envío me funciona y me manda el mensaje si esta el registro y no de echo tengo un css pero ese es solo es el diseño y estilo para que se vea la imagen entonces así tal como esta me manda mensaje

solo falta que me oculte cuando no exista en mi base

No quiero ser pesado pero te reitero... el "done" no tiene lo que te pedí que coloques en comentarios anteriores. Tienes que seguir mis instrucciones para que las cosas funcionen, si no seguiremos perdiendo tiempo con preguntas mal formuladas y desarrollos mal elaborados.

La función javascript tendría que quedar así.

$(document).ready(function() {
    $('#username').blur(function(){
        $('#Info').html('<img src="loader.gif" alt="" />').fadeOut(1000);
        var username = $(this).val();
        var dataString = 'username='+username;
        $.ajax({
            type: "POST",
            url: "validar.php",
            data: dataString,
            success: function(data) {
                 if(msg=="true"){
                      $("#Info").html("El numero existe");
                      $("#empresa").show();
                 }else{
                      $("#Info").html("el numero no existe");
                      $("#empresa").hide();
                 }
        });
     });
});
 

Y php tendría que quedar así:

<?php
sleep(1);
include('dbcon.php');
if ($_POST){
if($_REQUEST)
{
$username = $_REQUEST['username'];
$query = "select * from datos where username = '".strtolower($username)."'";
$results = mysql_query( $query) or die('ok');
if(mysql_num_rows(@$results) > 0) // not available
{
echo 'true';
}
else
{
echo 'false';
}
}
}?>

Tienes que entender que estoy lejos de tu computadora para poder ver todos los detalles por lo que necesito que estés atento a las instrucciones que te envío para que soluciones tus problemas con el menor tiempo posible de trabajo.

La idea de que estés atento es que también aprendas y después no necesites de expertos ni nada de eso, así puedas generar mejores aplicaciones al futuro.

ya realize los cambios y todo pero no hace nada ahora ya no me manda el mensaje si esta o no esta

Vuelve a enviarme el script para ver como lo implementaste

<script type="text/javascript">
$(document).ready(function() {
$('#username').blur(function(){
$('#Info').html('<img src="loader.gif" alt="" />').fadeOut(1000);
var username = $(this).val();
var dataString = 'username='+username;
$.ajax({
type: "POST",
url: "validar.php",
data: dataString,
.done function(data) {
if(msg=="true"){
$("#Info").html("El numero existe");
$("#empresa").show();
}else{
$("#Info").html("el numero no existe");
$("#empresa").hide();
}
});
});
});
</script>

Perdona, me pasé una variable

Cambia esto

if(msg=="true"){

Por esto

if(data=="true"){

am sigue sin funcionar ya le cambie y le e estado moviendo y de verdad no pienses que no intento si no que no encuentro la falla

Solo para debuggear

Has un alert y dime que te enseña la variable data

.done function(data) {

alert(data);

...

nada no hace nada

Entonces es un problema de que esta fallando en algo el javascript, puedes poner la consola de errores y revisar que sucede, ¿si manda alguna alerta o error?.

Por otro lado.

El alert para que funcione solo tiene que mostrar true o false y se ejecutará en el evento blur o sea, cuando pierdas el foco del campo (tienes que pasar a otro campo de texto). Si lo haces cada vez que presionas una tecla puedes sobre cargar la base de datos.

bueno gracias de verdad y lo chequearé vale tengo otra pregunta abro nuevo pregunta o por aqui

Abre otra pregunta, acá tendremos mucho más por conversar (al parecer) para que soluciones este problema. Poner otra pregunta solo sería entorpecer el trabajo.

pero es sobre de un script de que cuando le den click en enviar si no esta en mi base que me mande un mensaje de registro no se encuentra y no me deje pasar

Es muy parecido a esto. Mejor otra pregunta, porque me huele a batalla con otros scripts que hagan en parte lo mismo pero que el javascript tendrá que modificarse y ahí podremos tener otro flujo intenso de preguntas y mezclar los temas nos confundirá a ambos.

mira tengo esto para validar si el registro existe pero aquí estoy insertando y nada mas quiero seleccionar como se modificaría

<?php

function conectarse(){
if(!$conect=mysql_connect("localhost","",""))
die("Error en conexión a base de datos");
if(!mysql_select_db("landing",$conect))
die("Error al seleccionar base de datos");
return $conect;
}
$conexión=conectarse();
$username=$_POST["username"];
$resultado=mysql_query ("INSERT INTO retención (username) VALUES ('".$username."')");
if(!$resultado){
echo "<script type='text/javascript'>alert('Este Campo Telefónico: ya existe');</script>";
}else{
echo "<script type='text/javascript'>alert('Guardado exitoso');</script>";
}
echo mysql_error();//con esta linea podrías ver si hay un error en el sql
mysql_close($conexión);
}
?>

como ves experto como podemos modificar este código porque lo tengo en otro proyecto y lo que hace es que inserto cualquier numero y me lo guarda en mi base pero si vuelvo insertar el mismo numero me manda un alerta de campo telefónico ya existe entonces como seria si solo queremos ver si existe el no insertar solo ver si existe

¿Qué diferencias según tu existe en lo que habías hecho anteriormente?

¿No es parte de lo mismo?

En la pregunta que me haces anteriormente ya has hecho esta funcionalidad. Solo replica lo que hemos trabajado anteriormente con la consulta que realiza el select cambiando el where por numero y hacia la tabla que deseas referenciar. No le veo mayor dificultad.

gracias ya me quedo de verdad muchas gracias y disculpa por las molestias

No son molestias, a veces puedo sonar pesado pero es debido a que a veces preguntas cosas en donde tienes las respuestas tu mismo y que no has visto.

Como consejo, en este trabajo la observación es vital, no solo para encontrar soluciones a los problemas si no también para reutilizar cosas que hayas hecho antes. Reinventar la rueda en cada proyecto te dejará cesante y pobre en este mundo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas