Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/06/2010, 09:26
Avatar de jartaud
jartaud
 
Fecha de Ingreso: octubre-2009
Ubicación: Canal de Panamá
Mensajes: 96
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Ayuda con función que no ejecuta despues de la llamada AJAX

Cita:
Iniciado por Adler Ver Mensaje
Hola

Difícil saber que está pasando sin ver el código.

Suerte
Gracias por responder: aquí esta el AJAX
Código PHP:
function getXMLHTTP() {
    var 
xmlhttp=false;  
    try{
    
xmlhttp=new XMLHttpRequest();
    }
    catch(
e){       
    try{            
    
xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch(
e){
    try{
    
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(
e1){
    
xmlhttp=false;
      }
     }
  }
   return 
xmlhttp;
}

function 
getModel(idCar) {      
    var 
strURL="http://localhost/root509dir/Includes/model.php?idCar="+idCar;
    var 
req getXMLHTTP();
    if (
req) {
          
req.onreadystatechange = function() {
          if (
req.readyState == 4) {
          if (
req.status == 200) {
         
document.getElementById('modelCont').innerHTML=req.responseText;
     } else {
       
alert("There was a problem while using XMLHTTP:\n" req.statusText);
       }
    }               
}           
    
req.open("GET"strURLtrue);
    
req.send(null);
    }       

La primera lista dependiente se puede ver la función getModel que manda que llama el AJAX:
car.php
Código PHP:

<?php
$QRcars 
mysql_query("SELECT *FROM car ORDER BY car_make") or die(mysql_error());
if(
mysql_num_rows($QRcars)>0){?>
<select name="cars" id="cars" onchange="getModel(this.value);"><option value="0">-------------------</option>
<?php while($cars mysql_fetch_array($QRcars)){?>
<option value="<?php echo htmlentities($cars['id_car']);?>">
<?php echo htmlentities($cars['car_make']);?></option>
<?php }?>
</select>       
<?php }?>
<span id="modelCont">
<?php echo htmlentities(PUB_AN_MOD); ?><em>*</em>
<select name="model" id="model">
<option value="0">---------</option>
</select>
</span>
E el archivo que genera la lista dependiende después de la llamada async:
model.php
Código PHP:
if(isset($_GET['idCar'])){
    $idCar = mysql_real_escape_string($_GET['idCar']);
}
$modelQR = mysql_query("SELECT *FROM model WHERE from_make = '$idCar'") or die(mysql_error());?>
<?php echo htmlentities(PUB_AN_MOD); ?><em>*</em>
<select name="carmodel" id="carmodel">
<option value="0">----------------</option>
<?php while($model mysql_fetch_array($modelQR)){?>
<option value="<?php echo htmlentities($model['id_model']);?>">
          <?php echo htmlentities($model['car_model']);?></option>
<?php }?>
</select>
La función que deberia ejecutarse si el usuario no selecciona nada:
Ejecuta sobre los elementos no dinámicos. (Que no hayan generado por AJAX)
Código PHP:
... var model = $("#carModel");
.... 
model.change(validModel);

function 
validModel(){
     if(
model.val() == 0){
            
model.addClass("errorJS");
            return 
false;
            }else{
            
model.removeClass("errorJS");
            return 
true;
            }  
    } 
La clase errorJS anade un border rojo alrededor del elemento si la función return false;

Última edición por jartaud; 08/06/2010 a las 09:39 Razón: Info sobre la classe errorJS