Comunidad de diseño web y desarrollo en internet

Mostrar datos de una tabla según select option php

Citar            
MensajeEscrito el 20 Abr 2017 04:00 pm
Hola soy nueva en esto y apreciaría mucho su ayuda. tengo creados unos selects dependientes toman la información de una base de datos. y estoy tratando de hacer que según el combo seleccionado me muestre toda la información de las tablas que trae.

ejemplo
selecciono
Ciudad: Df
municipio: Tlalpan
Especialidad: Pediatra

y quisiera que me mostrara todos los pediatras que se encuentran en tlalpan df
pero nada mas me sale " busqueda sin resultados " tabla espero puedan ayudarme este es mi codigo:



<?php
require_once "config.inc.php";

function combo($db,$nombre,$valor,$tabla,$campos,$condicion,$orden,$modo,$espadre)
{
$query = "SELECT ".$campos." from ".$tabla." order by ".$orden." ".$modo;
$consulta=$db->query($query);
if ($hayregistros=$consulta->fetch_array())
{
echo "<select name='".$nombre."' id='".$nombre."'>";
if ($espadre==1)
{
echo "<option value=''>Selecciona...</option>";
do
{
echo "<option value='".$hayregistros[0]."'";
if ($hayregistros[0]==$valor) echo " selected";
echo ">".$hayregistros[1]."</option>\r\n";
}
while ($hayregistros=$consulta->fetch_array());
}
echo "</select>";
}
}
?>


<script type="text/javascript">
function llamada(combo,tabla,campos,referencia,valor,seleccionada)
{
$(combo).empty().append("<option value=''>Cargando...</option>");
$.ajax({
dataType: "json",
type: "GET",
url: "combobox.php",
data: { tabla:tabla,campos:campos,referencia: referencia, valor: valor }
})
.done(function(json) {
$(combo).empty().append("<option value=''>Selecciona...</option>");
$.each(json, function (i, items) {
if(items !== null) if (items["id"]==seleccionada) $("<option>").appendTo(combo).val(items["id"]).text(items["label"]).attr("selected","selected");
else if(items !== null) $("<option>").appendTo(combo).val(items["id"]).text(items["label"]);
});
});
}

$(document).ready(function()
{
/* COMBOBOX */
$(".combobox select:not(#idnieto)").change(function()
{
var idpadre = $("#idpadre").find(':selected').val();
var idhijo = $("#idhijo").find(':selected').val();

if (idpadre!="")
{
/* combo al hijo */
llamada("#idhijo","hijo","idhijo,hijo","idpadre",idpadre,idhijo);
llamada("#idnieto","nieto","idnieto,nieto","idhijo",idhijo,"");
}
});
});
</script>
<style>


select{padding:10px;border:1px solid #bbb;border-radius:5px;margin:5px 0;display:block;box-shadow:0 0 10px #ddd;width:50%}

</style>

</head>
<body>
<div class="label"><h1>Bienvenido </h1></div>
<p>
</p>

<div class="row">
<div class="col-md-4"></div>
<div class="col-md-4" align="center">
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>" class="combobox">
<fieldset>
<p><label>Estado</label><?php combo($db,"idpadre","","padre","idpadre,padre",1,"padre","asc",1); ?></p>
<p id="combo_1"><label>Municipio</label><?php combo($db,"idhijo","","hijo","idhijo,hijo",1,"hijo","asc",0); ?></p>
<p id="combo_2"> <label>Especialidad</label><?php combo($db,"idnieto","","nieto","idnieto,nieto",1,"nieto","asc",0); ?></p>
<p>&nbsp;</p>
<input type="submit" class="btn btn-ar btn-success" name="buscardor" value="Mostrar resultados">
</fieldset>
</form>

<?php

$texto = '';
//Variable que contendrá el número de resgistros encontrados
$registros = '';

if($_POST){


//---------- > creo que aqui es donde esta el error <------------


$busqueda = trim($_POST['combo_2']);

$entero = 0;

if (empty($busqueda)){
$texto = 'Búsqueda sin resultados';
}else{
// Si hay información para buscar, abrimos la conexión
conectar();
mysql_set_charset('utf8'); // mostramos la información en utf-8

//Contulta para la base de datos, se utiliza un comparador LIKE para acceder a todo lo que contenga la cadena a buscar
$sql = "SELECT * FROM nieto WHERE nieto LIKE '%" .$busqueda. "%' ORDER BY idnieto";

$resultado = mysql_query($sql); //Ejecución de la consulta
//Si hay resultados...
if (mysql_num_rows($resultado) > 0){
// Se recoge el número de resultados
$registros = '<p>Se encontarron ' . mysql_num_rows($resultado) . ' Socio(s) </p>';
// Se almacenan las cadenas de resultado
while($fila = mysql_fetch_assoc($resultado)){


echo'
<div class="table-responsive">
<table class="table table-hover">
<thead>
<tr>

<th>No. Tarjeta</th>
<th>Usuario</th>
<th>Nombre</th>
<th>Email</th>
<th>Teléfono</th>
<th>Dirección</th>
<th>Tipo de tarjeta</th>


</tr>
</thead>
<tbody>

<tr>
<td>'. $fila['name'] .'</td>
<td>'. $fila['lastname'] .'</td>
<td>'. $fila['dir'] .'</td>
<td>'. $fila['colonia'] .'</td>
<td>'. $fila['tel1'] .'</td>
<td>'. $fila['tel2'] .'</td>
<td>'. $fila['cel'] .'</td>


</tr>

</tbody>
</table>
</div>
</table> <br>';




}

}else{
$texto = "NO se ha encontrado ningun resultado";
}
// Cerramos la conexión (por seguridad, no dejar conexiones abiertas)
mysql_close($conexion);
}
}
?>
<?php
// Resultado, número de registros y contenido.
echo $registros;
echo $texto;

?>

Por vanepeke2

0 de clabLevel



 

chrome
Citar            
MensajeEscrito el 19 Jul 2017 02:47 am
Unos consejos
*cuando publiques codigo usa las etiquetas correspondientes [ c o d e ] para que se muestre el codigo de una forma mas limpia y colorida, asi a siemple vista ay quienes te ayudaran
*Trata de separar siempre archivos JAVASCRIPT de PHP, para localizar donde esta exactamente el problema,ya que todo junto puede marear hasta el mas experto
*por lo que veo estas usando funciones de php que son ya practiacmente obsoletas, almenos que donde se ejecute tenga una version de php 5.1 o inferior,

si gustas, puedo pasarte programas con licencias con un costo bajisimo como INTELLIJ IDEA, o PHP STORM o WEBSTORM (Son buenos IDE's para programar y revisar a fondo el codigo)

aca te dejo tu codigo coloreado y formateado

Código PHP :


<?php
require_once "config.inc.php";

function combo($db, $nombre, $valor, $tabla, $campos, $condicion, $orden, $modo, $espadre)
{
    $query    = "SELECT " . $campos . " from " . $tabla . " order by " . $orden . " " . $modo;
    $consulta = $db->query($query);
    if ($hayregistros = $consulta->fetch_array()) {
        echo "<select name='" . $nombre . "' id='" . $nombre . "'>";
        if ($espadre == 1) {
            echo "<option value=''>Selecciona...</option>";
            do {
                echo "<option value='" . $hayregistros[0] . "'";
                if ($hayregistros[0] == $valor)
                    echo " selected";
                echo ">" . $hayregistros[1] . "</option>\r\n";
            } while ($hayregistros = $consulta->fetch_array());
        }
        echo "</select>";
    }
}
?>


<script type="text/javascript">
function llamada(combo,tabla,campos,referencia,valor,seleccionada)
{
$(combo).empty().append("<option value=''>Cargando...</option>");
$.ajax({
dataType: "json",
type: "GET",
url: "combobox.php",
data: { tabla:tabla,campos:campos,referencia: referencia, valor: valor }
})
.done(function(json) {
$(combo).empty().append("<option value=''>Selecciona...</option>");
$.each(json, function (i, items) {
if(items !== null) if (items["id"]==seleccionada) $("<option>").appendTo(combo).val(items["id"]).text(items["label"]).attr("selected","selected");
else if(items !== null) $("<option>").appendTo(combo).val(items["id"]).text(items["label"]);
});
});
}

$(document).ready(function() 
{
/* COMBOBOX */
$(".combobox select:not(#idnieto)").change(function()
{
var idpadre = $("#idpadre").find(':selected').val();
var idhijo = $("#idhijo").find(':selected').val();

if (idpadre!="")
{
/* combo al hijo */
llamada("#idhijo","hijo","idhijo,hijo","idpadre",idpadre,idhijo);
llamada("#idnieto","nieto","idnieto,nieto","idhijo",idhijo,"");
}
});
});
</script>
<style>


select{padding:10px;border:1px solid #bbb;border-radius:5px;margin:5px 0;display:block;box-shadow:0 0 10px #ddd;width:50%}

</style>

</head>
<body>
<div class="label"><h1>Bienvenido </h1></div>
<p>
</p>

<div class="row">
<div class="col-md-4"></div>
<div class="col-md-4" align="center">
<form method="post" action="<?php
echo $_SERVER["PHP_SELF"];
?>" class="combobox">
<fieldset>
<p><label>Estado</label><?php
combo($db, "idpadre", "", "padre", "idpadre,padre", 1, "padre", "asc", 1);
?></p>
<p id="combo_1"><label>Municipio</label><?php
combo($db, "idhijo", "", "hijo", "idhijo,hijo", 1, "hijo", "asc", 0);
?></p>
<p id="combo_2"> <label>Especialidad</label><?php
combo($db, "idnieto", "", "nieto", "idnieto,nieto", 1, "nieto", "asc", 0);
?></p>
<p>&nbsp;</p>
<input type="submit" class="btn btn-ar btn-success" name="buscardor" value="Mostrar resultados">
</fieldset>
</form>

<?php

$texto     = '';
//Variable que contendrá el número de resgistros encontrados
$registros = '';

if ($_POST) {
    
    
    //---------- > creo que aqui es donde esta el error <------------
    
    
    $busqueda = trim($_POST['combo_2']);
    
    $entero = 0;
    
    if (empty($busqueda)) {
        $texto = 'Búsqueda sin resultados';
    } else {
        // Si hay información para buscar, abrimos la conexión
        conectar();
        mysql_set_charset('utf8'); // mostramos la información en utf-8
        
        //Contulta para la base de datos, se utiliza un comparador LIKE para acceder a todo lo que contenga la cadena a buscar
        $sql = "SELECT * FROM nieto WHERE nieto LIKE '%" . $busqueda . "%' ORDER BY idnieto";
        
        $resultado = mysql_query($sql); //Ejecución de la consulta
        //Si hay resultados...
        if (mysql_num_rows($resultado) > 0) {
            // Se recoge el número de resultados
            $registros = '<p>Se encontarron ' . mysql_num_rows($resultado) . ' Socio(s) </p>';
            // Se almacenan las cadenas de resultado
            while ($fila = mysql_fetch_assoc($resultado)) {
                
                
                echo ' 
<div class="table-responsive">
<table class="table table-hover">
<thead>
<tr>

<th>No. Tarjeta</th>
<th>Usuario</th>
<th>Nombre</th>
<th>Email</th>
<th>Teléfono</th>
<th>Dirección</th>
<th>Tipo de tarjeta</th>


</tr>
</thead>
<tbody>

<tr>
<td>' . $fila['name'] . '</td>
<td>' . $fila['lastname'] . '</td>
<td>' . $fila['dir'] . '</td>
<td>' . $fila['colonia'] . '</td>
<td>' . $fila['tel1'] . '</td>
<td>' . $fila['tel2'] . '</td>
<td>' . $fila['cel'] . '</td>


</tr> 

</tbody>
</table>
</div>
</table> <br>';
                
                
                
                
            }
            
        } else {
            $texto = "NO se ha encontrado ningun resultado";
        }
        // Cerramos la conexión (por seguridad, no dejar conexiones abiertas)
        mysql_close($conexion);
    }
}
?>
<?php
// Resultado, número de registros y contenido.
echo $registros;
echo $texto;

?>

Por tuadmin

Claber

580 de clabLevel



Genero:Masculino  

chrome

   Página 1 de 1

 

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