Foros del Web » Programando para Internet » Javascript »

Selectores múltiples con AJAX

Estas en el tema de Selectores múltiples con AJAX en el foro de Javascript en Foros del Web. Buenas tardes. Estoy intentando hacer una selección múltiple con Ajax y el problema es que me carga los dos primeros selectores pero no entiendo porque ...
  #1 (permalink)  
Antiguo 31/10/2011, 09:40
 
Fecha de Ingreso: julio-2011
Mensajes: 91
Antigüedad: 12 años, 9 meses
Puntos: 2
Selectores múltiples con AJAX

Buenas tardes.
Estoy intentando hacer una selección múltiple con Ajax y el problema es que me carga los dos primeros selectores pero no entiendo porque no me presenta el último.
En el inicial presento el Select con una serie de valores. El segundo Select se carga correctamente al saltar el evento onchange, pero el tercero que tiene el mismo proceso que el segundo Select, no me salta el evento onchange cuando realizo alguna selección.
Agradecido si alguien me puede aclarar el porque no me sale.
Adjunto el fichero...

Código Javascript:
Ver original
  1. <?php
  2.   include ('aprendetu_sc_fns.php');
  3.  
  4.   @session_start();
  5.  
  6.   ?>
  7.  
  8.         <LINK rel="stylesheet" type="text/css" href="cuerpo.css">
  9.      
  10.   <?php
  11.  
  12.   $usuario = $_SESSION['usuario'];
  13.   $nivelUsuario = $_SESSION['nivelUsuario'];
  14.  
  15.   do_html_header("Bienvenido a Aprendetu Online");
  16.  
  17.   ?>
  18.  
  19. <script type="text/javascript">
  20.    
  21.     /*$(document).ready(function(){
  22.         $("#contenidoCursos").load("servCursos.php?usuario="+usuario);  
  23.     })*/
  24.    
  25.     function showAsignaturas(str){
  26.         var xmlhttp;
  27.         if (str==""){
  28.             document.getElementById("priSelect").innerHTML="";
  29.             return;
  30.         }
  31.         if (window.XMLHttpRequest){
  32.             xmlhttp = XMLHttpRequest();
  33.         } else {
  34.             xmlhttp = ActiveXObject("Microsoft.XMLHTTP");
  35.         }
  36.         xmlhttp.onreadystatechange=function(){
  37.             if (xmlhttp.readyState==4 && xmlhttp.status==200){
  38.                 document.getElementById("priSelect").innerHTML=xmlhttp.responseText;
  39.             }          
  40.         }
  41.         xmlhttp.open("GET", "servAsignaturas.php?as="+str, true);
  42.         xmlhttp.send();
  43.     }
  44.    
  45.     function showTemas(str1){
  46.         var xmlhttp1;
  47.         if (str1==""){
  48.             document.getElementById("segSelect").innerHTML="";
  49.             return;
  50.         }
  51.         if (window.XMLHttpRequest){
  52.             xmlhttp1 = XMLHttpRequest();
  53.         } else {
  54.             xmlhttp1 = ActiveXObject("Microsoft.XMLHTTP");
  55.         }
  56.         xmlhttp1.onreadystatechange=function(){
  57.             if (xmlhttp1.readyState==4 && xmlhttp1.status==200){
  58.                 document.getElementById("segSelect").innerHTML=xmlhttp1.responseText;
  59.             }          
  60.         }
  61.         xmlhttp1.open("GET", "servTemas.php?tem="+str1, true);
  62.         xmlhttp1.send();
  63.     }
  64. </script>
  65.  
  66. </head>
  67.  
  68. <body>
  69.  
  70.     <!--<div id="contenidoCursos" align="left"></div>-->
  71.    
  72.     <table>
  73.     <tr>
  74.     <td>
  75.     <div id="sel">
  76.         <select name="listaCursos" onchange="showAsignaturas(this.value)">
  77.             <?php include "servCursos.php" ?>      
  78.         </select>
  79.     </div>
  80.     </td>
  81.     <td>
  82.     <div id="priSelect">
  83.         <select name="listaAsignaturas" onchange="showTemas(this.value)">
  84.         </select>
  85.     </div>
  86.     </td>
  87.     <td>
  88.     <div id="segSelect">
  89.         <select name="2">
  90.         </select>  
  91.     </div>
  92.     </td>
  93.     </tr>
  94.     </table>
  95.  
  96. </body>
  97. </html>

Gracias anticipadas y saludos.
  #2 (permalink)  
Antiguo 31/10/2011, 09:57
 
Fecha de Ingreso: agosto-2008
Mensajes: 3
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Selectores múltiples con AJAX

Buenos días
Estoy iniciando y para poder iniciar bien me exigen que realice un sistema de chequera, no mas imaginense.

Quisiera ver si me puede ayudar con este codigo que intenta realizar una conexion a un ajax desde un archivo que se apoya con jQuery

<html>
<head>
<!-- Archivo de consultas de Solicitud de Cheques -->
<meta charset="UTF-8">
<link rel="stylesheet" href="css/style.css">
<title>SAF- Solicitud de Cheques</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script src="javascript/divhide.js"></script>
<script src="javascript/jquery.tmpl.js"></script>
<script>
$(function(){
$('#query').live('keyup', function(){ // Obtiene la informacion conforme va tecleando la busqueda
//
var fecha= document.getElementById('fec').value; // Se toma la variable a concatenar fecha (No se si se deben de agregar 2 valores de fecha ini y fin)
var opcion= document.getElementById('opc').value; // Se crea variable para tomar informacion del combo, misma que sera unida al data
var data = 'query=' + opcion + $(this).val(); // Toma el valor de los datos, que viene del input
//alert(data); // Este echo es para validar que se despliegue la informacion de data y opcion
$.post('ajax.php',data, function(resp){ //Entra al Ajax para realizar las consultas conforme a la opcion seleccionada

alert(resp.response);
$('#proveedor').empty();
$('#tmpl_proveedor').tmpl(resp).appendTo('#proveed or'); // Checa el plugin de templating para Java, tomando los productos del script de abajo y
// los va colocando en la forma de la tabla
}, 'json'); // Json es una muy buena opcion
});
});
</script>
<script id="tmpl_proveedor" type="text/x-jquery-tmpl">
<tr>
{{if nomprov}}
<td>${folio}</td>
<td>${nomprov}</td>
<td>${falta}</td>
<td>${concepto}</td>
{{else}}
<td colspan="2">No existen resultados</td>
{{/if}}
</tr>
</script>
<style type="text/css">
.Estilo1 {
font-family: Arial;
font-size: 13px;
}
</style>
</head>
<body>
<div id="main">
<h1 class="Estilo1">Busqueda de Solicitudes de Cheque</h1>
<label>
<select name="opc" id="opc" onChange="ShowHidden()">
<option value="1">Número de Cheque</option>
<option value="2">Proveedor</option>
<option value="3" >Departamento</option>
<option value="4" >Concepto</option>
<option value="5">Por fechas</option>
</select>
</label>
<!-- Selecciona el numero de Cheque -->
<div align="left" id="NoCheques" style="z-index:1; position:absolute; width:302px; top: 85px; left: 397px; height: 21px;">
<input type="text" name="query" id="query" size="60" >
</div>

<!-- Selecciona por Departamento
<div align="left" id="depto" style="z-index:1; position:absolute; width:302px; top: 90px; left: 399px; height: 21px;">
<input type="text" name="query" id="query" size="60">
</div>

<!-- Selecciona por Proveedor
<div align="left" id="prov" style="z-index:1; position:absolute; width:302px; top: 90px; left: 399px; height: 21px;">
<input type="text" name="query" id="query" size="60">
</div>
<!-- Selecciona por fecha -->
<div align="left" id="fecha" style="z-index:1; position:absolute; width:302px; top: 85px; left: 815px; height: 21px;">
Desde:
<input type="text" name="fecha1" id="fecha1" size="10">
Hasta:
<input type="text" name="fecha2" id="fecha2" size="10">
</div>
<table>
<thead>
<th>Folio</th>
<th>Proveedor</th>
<th>Fecha de alta</th>
<th>Concepto</th>
</thead>
<tbody id="proveedor" name='proveedor'>
<tr>
<td colspan="2">Encontrar Resultados</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>

Mi pregunta es, ¿como puedo concatenar 2 input que hacen referencia a fecini y fecfin y los pueda integrar en la busqueda de AJAX
  #3 (permalink)  
Antiguo 31/10/2011, 09:58
 
Fecha de Ingreso: julio-2011
Mensajes: 91
Antigüedad: 12 años, 9 meses
Puntos: 2
Respuesta: Selectores múltiples con AJAX

Ya está visto.
El problema se estaba dando porque la respuesta de la segunda llamada Ajax ya venía desde servidor con las etiquetas Select completas y no estaba metiendo el onchange, con lo que no podía lanzar el evento.

Código PHP:
Ver original
  1. <?php
  2.     include ('aprendetu_sc_fns.php');
  3.     echo '<select name="asig" onchange="showTemas(this.value)">';
  4.     $conn = db_connect();
  5.     $query = "select * from asignaturas";
  6.     $result = @mysql_query($query);
  7.     echo "<option>Selecciona una asignatura</option>";
  8.     while($fila = mysql_fetch_array($result)){
  9.         if ($fila['idcurso'] == $_GET['as']){
  10.             echo "<option value='".$fila['idasignatura']."'>".$fila['descasignatura']."</option>";
  11.         }
  12.     }
  13.     mysql_close($conn);
  14.     echo '</select>';
  15. ?>

Gracias y saludos.

Etiquetas: ajax, html, php, selectores
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 14:11.