Foros del Web » Programando para Internet » Javascript »

actualizar select ajax

Estas en el tema de actualizar select ajax en el foro de Javascript en Foros del Web. Que tal maestros, tengo un problemita y espero ustedes me puedan guiar por el camino correcto Lo que quiero es que después de que se ...
  #1 (permalink)  
Antiguo 27/01/2012, 11:04
Avatar de lukas4  
Fecha de Ingreso: octubre-2008
Ubicación: frente al pc
Mensajes: 496
Antigüedad: 15 años, 6 meses
Puntos: 12
Pregunta actualizar select ajax

Que tal maestros, tengo un problemita y espero ustedes me puedan guiar por el camino correcto

Lo que quiero es que después de que se haga la actualización de algún usuario en el nombre o apellido, el select se actualice mostrando el nuevo nombre del usuario. con lo que tengo orita al momento de actualizar me despliega otro select en lugar de el mensaje de actualizacion exitosa.

tengo las siguientes funciones en js:
Código Javascript:
Ver original
  1. function request(val){//trae la info de los usuarios: id,nombre, etc
  2.     if(val==""){
  3.         document.getElementById("result").innerHTML="";
  4.         return;
  5.     }
  6.     if(window.XMLHttpRequest){
  7.         xmlhttp=new XMLHttpRequest();
  8.     }
  9.     else{
  10.         xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  11.     }
  12.     xmlhttp.onreadystatechange=function(){
  13.         if(xmlhttp.readyState==4 && xmlhttp.status==200){
  14.             document.getElementById("result").innerHTML=xmlhttp.responseText;
  15.         }
  16.     }
  17.     xmlhttp.open("GET","buscar1.php?q="+val+"&t="+Math.random(),true);
  18.     xmlhttp.send();
  19. }
  20. function loadSelect(){//carga el select con los usuarios
  21.     document.getElementById("userList").innerHTML=""
  22.     if(window.XMLHttpRequest){
  23.         xmlhttp=new XMLHttpRequest();
  24.     }
  25.     else{
  26.         xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  27.     }
  28.     xmlhttp.onreadystatechange=function(){
  29.         if(xmlhttp.readyState==4 && xmlhttp.status==200){
  30.             document.getElementById("userList").innerHTML=xmlhttp.responseText;
  31.         }
  32.     }
  33.     xmlhttp.open("POST","select.php",true);
  34.     xmlhttp.send();
  35. }
  36. function alter(){//actualiza los campos de nombre, apellido y localidad del usuario
  37.     user=document.getElementById("user").value;
  38.     name=document.getElementById("name").value;
  39.     last=document.getElementById("last").value;
  40.     loc=document.getElementById("loc").value;  
  41.     if(window.XMLHttpRequest){
  42.         xmlhttp=new XMLHttpRequest();
  43.     }
  44.     else{
  45.         xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  46.     }
  47.     xmlhttp.onreadystatechange=function(){
  48.         if(xmlhttp.readyState==4 && xmlhttp.status==200){
  49.             document.getElementById("response").innerHTML=xmlhttp.responseText;
  50.         }
  51.     }
  52.     data="?q="+user+"&name="+name+"&last="+last+"&loc="+loc+"&t="+Math.random();
  53.     xmlhttp.open("GET","act.php"+data,true);
  54.     xmlhttp.send();
  55.     loadSelect();// aqui mando llamar la función para cargar el select con los datos actualizados, pero no me funciona correctamente =(
  56. }

este es mi body:


Código HTML:
Ver original
  1. <div id="userList">
  2. <?php
  3. include 'dataconnect.php';
  4.  
  5. $sql="SELECT id, name, last FROM person ORDER BY name";
  6. $result=mysql_query($sql) or die(mysql_error());
  7. if(mysql_num_rows($result)==0){
  8.     echo "No data was found";
  9. }
  10. else{
  11.     echo "<select onchange=\"request(this.value)\">";
  12.     echo "<option value=''>Select an user</option>";
  13.     while($row=mysql_fetch_array($result)){
  14.         echo "<option value='".$row['id']."'>".$row['name']." ".$row['last']."</option>";
  15.     }
  16.     echo "</select>";
  17. }
  18. ?>
  19. </div>
  20. <div id="result">
  21. </div>
  22. </body>

y estos son mis archivos php:

Código PHP:
<? //buscar1.php
include 'dataconnect.php';
$user=$_GET['q'];
$sql="SELECT person.id, person.name, person.last, location.location FROM person LEFT JOIN location on person.id=location.personId WHERE person.id=".$user."";
$result=mysql_query($sql) or die (mysql_error());
if(
mysql_num_rows($result)==0){
    echo 
"No data was found";
}
else{
    
$row mysql_fetch_array($result);?>
    <input type="hidden" style="display:none;" value="<?=$row['id']?>" id="user"/>
    <table>
        <tr>
            <td>First Name:</td><td><input type="text" value="<?=$row['name']?>" id="name"/></td>
        </tr>
        <tr>
            <td>Last Name:</td><td><input type="text" value="<?=$row['last']?>" id="last"/></td>
        </tr>
        <tr>
            <td>Location:</td><td><input type="text" value="<?=$row['location']?>" id="loc"/></td>
        </tr>
        <tr>
            <td><input type="button" value="Delete" onclick=""/></td>
            <td><input type="button" value="Update" onclick="alter();"/></td>
        </tr>
    </table>
    <div id="response"></div>
<?}
?>
Código PHP:
<?php//act.php

include 'dataconnect.php';
$sql="UPDATE person, location SET person.name='".$_GET['name']."', person.last='".$_GET['last']."', location.location='".$_GET['loc']."' WHERE person.id=location.personId AND location.personId=".$_GET['q']."";

$result=mysql_query($sql);// or die(mysql_error());
if(!$result){
    die(
"Update failure: ".mysql_error());
}
else{
    echo 
"Update Succesfull";
}
?>
Código PHP:
<?php//select.php
include 'dataconnect.php';

$sql="SELECT id, name, last FROM person ORDER BY name";
$result=mysql_query($sql) or die(mysql_error());
if(
mysql_num_rows($result)==0){
    echo 
"No data was found";
}
else{
    echo 
"<select onchange=\"request(this.value)\">";
    echo 
"<option value=''>Select an user</option>";
    while(
$row=mysql_fetch_array($result)){
        echo 
"<option value='".$row['id']."'>".$row['name']." ".$row['last']."</option>";
    }
    echo 
"</select>";
}
?>
disculpen tanto código, pero no quería omitir nada.
__________________
http://situcomo.blogspot.com
Karma is a Bitch... they said

Etiquetas: ajax, mysql, php
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 00:02.