Foros del Web » Programando para Internet » Javascript » Frameworks JS »

ayuda con ajax y php

Estas en el tema de ayuda con ajax y php en el foro de Frameworks JS en Foros del Web. Hola a todos, mi consulta es la siguiente, estoy haciendo un sistema para mi trabajo y quede pegado en un codigo que me tiene de ...
  #1 (permalink)  
Antiguo 20/06/2008, 11:49
 
Fecha de Ingreso: junio-2008
Ubicación: Osorno
Mensajes: 155
Antigüedad: 16 años, 6 meses
Puntos: 3
ayuda con ajax y php

Hola a todos, mi consulta es la siguiente, estoy haciendo un sistema para mi trabajo y quede pegado en un codigo que me tiene de cabeza para poder sacarlo, se trata de lo siguiente: el sistema consiste en una planilla de inspecciones de equipos en terreno, lo que yo hago es una consulta a la base de datos pidiendole que me muestre todos los equipos que estan asocisdos a un numero de cliente (este numero de cliente lo ingresa el usuario, es como :"ingrese el numero de cliente al que quiere ingresar una inspeccion") si el numero de cliente que ingreso existe en la base, hago que imprima cada uno de los equipos asociados a este cliente, "hasta esta parte mi codigo está al 100%", el problema es cuando el usuario tiene que ingresar el nuemero de equipo que fue a revisar, ya que tengo que comprobar que el numero de equipo que ingreso se encunetre entre los equipos de este cliente si el numero que ingresao está no hay problema puede ingresar la inspeccion, pero muchas veces el numero de equipo que este encontro en terreno no estaba en la base de datos por lo que quiero advertirle con un mensaje que el numero que ingreso no existe y si realmente quiere ingresar la inspeccion pero no se como hacer que me verifique el numero que ingreso con cada uno de los que yo traje de la base de datos, esto queria hacerlo en javaescripts ya que a parte del numero del equipo le pido al usuario que ingrese otros datos entonces si lo hago en php me va a refrescar la pagina y se perderan los datos ya ingresados pero me dijeron que en ajax se podia y la verdad es que de ajax no se nada por favor ayundemeeeeeeeee..
el codigo donde muestro los equipos del cliente es el siguiente:
<?php
$sql="SELECT nume_serv,nume_equipo,marc_equipo FROM clientes WHERE nume_serv='$numero' ";
$info=mysql_query($sql, $link);
while ($row=mysql_fetch_array($info)) {
$nume_equipo=$row["nume_equipo"];
$marc_equipo=$row["marc_equipo"];
echo"
<table width='781' align='center'>
<tr>
<td width='68' span class='Estilo10'>Nºequipo</span></td>
<td width='67' $nume_equipo</td>
<td width='68'>Marca</span></td>
<td width='67'>$marc_equipo</td>
</tr>
</table>
";}
?>
ayudenme por favor
  #2 (permalink)  
Antiguo 20/06/2008, 11:53
Avatar de gepd  
Fecha de Ingreso: diciembre-2007
Mensajes: 142
Antigüedad: 17 años
Puntos: 6
Respuesta: ayuda con ajax y php

te he respondido en el foro de javascript http://www.forosdelweb.com/f13/ayuda...script-598497/ se puede hacer con cualquiera de los dos, si lo necesitas muy urgente puedes hacer lo que te envíe

saludos
  #3 (permalink)  
Antiguo 20/06/2008, 14:39
 
Fecha de Ingreso: junio-2008
Ubicación: Osorno
Mensajes: 155
Antigüedad: 16 años, 6 meses
Puntos: 3
Respuesta: ayuda con ajax y php

muchas gracias gepd, pero creo que no me explique bien, el cuento es algo a si:
hay una página donde el usuario debe ingresar el numero de cliente al cual desea ingresar una inspección en terreno, si el numero que ingreso es correcto lo redirecciona a una página donde se muestran por pantalla los datos del cliente (nombre, dirección, etc)y también hay un ítem que dice datos de equipo, en esta parte se muestran los datos de los equipos que tiene este cliente(numero, marca, etc)más abajo se muestran los datos que debe llenar el usuario o la persona que realizo la inspección (fecha de inspección, el estado del equipo, etc), y es en esta parte donde el usuario ingresa el numero de equipo que inspecciono en terreno, entonces lo que yo necesito es que en el evento "onBlur" del cuadro de texto, en el que se ingresa el numero de equipo, se dirija a una función en la que tome el numero ingresado y lo compare con cada uno de los números de equipo que la pagina me muestra en la parte superior en el ítem ( "datos de los equipos" )....por lo tanto, si el numero que ingreso es igual a alguno de los que se muestra en este ítem ( "datos de los equipos" ) que siga con el ingreso de los demás datos , pero si el numero que ingreso es diferente , que me muestre un mensaje que diga que ingreso un numero que no está este ítem( "datos de los equipos" ) , pero que no refresque la pagina , para que no se pierdan los demás datos ingresados y el usuario no tenga que volver a ingresarlos.
  #4 (permalink)  
Antiguo 20/06/2008, 16:04
Avatar de gepd  
Fecha de Ingreso: diciembre-2007
Mensajes: 142
Antigüedad: 17 años
Puntos: 6
Respuesta: ayuda con ajax y php

creo que entendi algo, prueba con ésto

éste seria tu formulario
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Verifica Equipo</title>
<script>
function nuevoAjax(){
    var objetoAjax=false;
    
    try{
        objetoAjax = new ActiveXObject("Msxml2.XMLHTTP");
    }catch (e) {
        try {
            objetoAjax = new ActiveXObject("Microsoft.XMLHTTP");
        }catch (E) {
            objetoAjax = false;
        }
    }
    
    if (!objetoAjax && typeof XMLHttpRequest!='Error Indefinido') {
        objetoAjax = new XMLHttpRequest();
    }
    return objetoAjax;
}

function verificaEquipo (idEquipo){
    var ajax = nuevoAjax();
    
    ajax.open("POST","verificaEquipo.php",true);
    ajax.onreadystatechange = function(){
        
        if (ajax.readyState == 4){
            respuesta = ajax.responseText;
            if(respuesta == 0){
                alert('error el numero de equipo ingresado es incorrecto');            
                return false;
                
            }else if(respuesta == 1){
                return true;
            }                        
        }
    }
    
    ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    ajax.send("idEquipo="+idEquipo);
}
</script>
</head>
<body>
<input type="text" name="id_equipo" onblur="verificaEquipo(this.value);" />
</body>
</html>
éste seria el php que verifica si exíste el equipo
verificaEquipo.php
Código PHP:
<?php 

        
//conexion
        
        
$idEquipo $_POST['idEquipo'];
        
$numero $_SESSION['numero'];
        
            
$sql="SELECT nume_serv,nume_equipo,marc_equipo FROM clientes WHERE nume_serv='$numero' AND nume_equipo = '$idEquipo'";
            
$info=mysql_query($sql$link);
            
$raw mysql_num_rows($info);
            
            if(
$raw 0){
                echo 
1;//todo correcto
            
}else{
                echo 
0;//no hay registros
            
}
?>
una cosa, en el php, he incluido una variable de tipo $_SESSION ya que creo que al ingresar ha esa parte del sistema, puedes crear una variable con ese dato, para no tener que estar ejecutando más consultas, de todos modos si crees que puedes hacer una consulta con mayor resultado, lo principal que hice aqui fué mostrarte como se puede obtener lo que entendí que quieres


saludos
  #5 (permalink)  
Antiguo 20/06/2008, 16:53
 
Fecha de Ingreso: junio-2008
Ubicación: Osorno
Mensajes: 155
Antigüedad: 16 años, 6 meses
Puntos: 3
Respuesta: ayuda con ajax y php

muchas gracias gepd, voy a probar con lo que me dices y despues te cuento como me fue, de antemano muchas gracias .
  #6 (permalink)  
Antiguo 22/06/2008, 11:01
 
Fecha de Ingreso: junio-2008
Ubicación: Osorno
Mensajes: 155
Antigüedad: 16 años, 6 meses
Puntos: 3
Respuesta: ayuda con ajax y php

hola gepd, lamentablemente el codigo que me dijistes que usara no sirvio o no se que es lo que pasa por que al ejecutar el scripts no hace nada y no me muestra ningun error, que es lo que estoy haciendo mal. pegue el script de jax en mi pagina donde ingresos los datos de la inspeccion y cree otra pagina php con el codigo que me posteaste,donde proceso los datos que envio atraves de la funcion de ajax pero no hace nada no muestra los alert.
  #7 (permalink)  
Antiguo 22/06/2008, 16:57
Avatar de gepd  
Fecha de Ingreso: diciembre-2007
Mensajes: 142
Antigüedad: 17 años
Puntos: 6
Respuesta: ayuda con ajax y php

me faltó detallar algo, en campo de texto debes agregar onblur="verificaEquipo(this.value);"
  #8 (permalink)  
Antiguo 22/06/2008, 19:12
 
Fecha de Ingreso: junio-2008
Ubicación: Osorno
Mensajes: 155
Antigüedad: 16 años, 6 meses
Puntos: 3
Respuesta: ayuda con ajax y php

muchas gracias gepd, logre solucionar mi problema lo que enseñaste fue de gran ayuda tube que hacer alguna modificaciones para que hiciera lo que yo queria buscando por aki y por aya logre sacar el codigo, bueno ahora lo dejo a k por si alguien mas lo necesita, de verdad muchas gracias.
este el el script de ajax:
<script>
//acá cada se crea el objeto
function aj(){
if(window.XMLHttpRequest){
return new XMLHttpRequest();
}
else{
try{
return new ActiveXObject('Microsoft.XMLHTTP');
}catch(e){
alert('tu navegador no soporta ajax');
return false;
}
}
}
function sendAndLoad(){
var rpc=aj();
if(rpc){
//si pudo crearse el objeto, avanzamos (respetar el orden)
rpc.open('POST','pagina.php',true);
rpc.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
//preparamos las variables a enviar
var aEnviar='';

for(ii=0; ii<arguments.length;ii++){
//usamos el objeto arguments para obtener y parsear los datos a enviar
//encodeURI es semejante a urlencode de PHP
aEnviar+=arguments[ii].desc+'='+encodeURI(arguments[ii].dato)+'&';
}
//creamos una función anónima que sirva de handler
rpc.onreadystatechange=function(){
if(rpc.readyState==4){
respuesta=rpc.responseText;
if(respuesta == 0){
//nos conectamos, recibimos si encontro datos en la consulta le decimos que haga algo
}
}else{
//si no encontro datos en la consulta le decimos que haga algo
}
}
//Recién ahora, que tenemos todo lo anterior terminado, podemos enviar el request
rpc.send(aEnviar);
}
}
//asignamos la función al botón de envío al cargar la página, así no tocamos el html
window.onload=function(){
document.getElementById('numero_equipo').onblur=fu nction(){
//pasamos objetos escritos en notación json como argumentos
sendAndLoad({desc:'numero_equipo',dato:document.ge tElementById('numero_equipo').value},{desc:'base1' ,dato:document.getElementById('base1').value},{des c:'numero1',dato:document.getElementById('numero1' ).value});

}
}
</script>
este es el codigo html que lo tengo dentro de la misma pagina donde esta el script y el que ejecuta la funcion :
<html>
<form id="form1" name="form1" method="post" action="">
<input name="numero_equipo" id="numero_equipo" type="text">
<input name="base1" id="base1" value="<?php echo $base; ?>" type="hidden"><!--como yo trabajo dandole acceso a las tablas de la BD al usuario dependiendo se la zona de trabajo coloco el nombre de la tabla a la cual tine permisos en una variable-->
<input name="numero1" id="numero1" value="<?php echo $numero; ?>" type="hidden"><!-- este es el numero de cliente-->
<!-- el campo base y el numero bienen de otra pagina -->
</form>
</html>

por ultimo este es el codigo que tengo en mi pagina php:
<?php
if(isset($_POST['numero_equipo']) && !empty($_POST['numero_equipo'])){
include("../conexion.php");
$nume_ser_equipo = $_POST['numero_equipo'];
$base = $_POST['base1'];
$numero =$_POST['numero1'];
$sql="SELECT nume_equipo,marc_equipo FROM $base WHERE nume_serv='$numero' AND nume_equipo='$nume_ser_equipo'";
$info=mysql_query($sql, $link);
$row=mysql_fetch_array($info);
if($row > '0')
{
echo "1";//todo correcto
}else{
echo "0";//no hay registros
}
exit;
}
?>
  #9 (permalink)  
Antiguo 22/06/2008, 19:15
Avatar de gepd  
Fecha de Ingreso: diciembre-2007
Mensajes: 142
Antigüedad: 17 años
Puntos: 6
Respuesta: ayuda con ajax y php

me alegra que te sirviera, la verdad que hice lo que entendí, a pesar de todo creo que entendi bien... ese mismo ejemplo con modificaciones puedes aplicarlo para muchas cosas más


saludos
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 22:19.