Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] enviar variables ajax

Estas en el tema de enviar variables ajax en el foro de Javascript en Foros del Web. buenas amigos del foro tengo otra duda a ver si me pueden ayudar gracias tengo este codigo ajax Código PHP:          // JavaScript Document function  nuevoAjax (){ ...
  #1 (permalink)  
Antiguo 17/04/2017, 17:50
 
Fecha de Ingreso: junio-2013
Mensajes: 94
Antigüedad: 10 años, 10 meses
Puntos: 0
Pregunta enviar variables ajax

buenas amigos del foro tengo otra duda a ver si me pueden ayudar gracias

tengo este codigo ajax

Código PHP:

        
// JavaScript Document
function nuevoAjax(){
    var 
xmlhttp=false;
    try{
        
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(
e){
        try {
            
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }catch(
E){
            
xmlhttp false;
        }
    }

    if (!
xmlhttp && typeof XMLHttpRequest!='undefined') {
        
xmlhttp = new XMLHttpRequest();
    }
    
    return 
xmlhttp;
}

function 
buscarDato(){
    
resul document.getElementById('resultado');
    
    
bus=document.frmbusqueda.dato.value;
    
    
ajax=nuevoAjax();
    
ajax.open("POST""filtro_nivel3.php",true);
    
ajax.onreadystatechange=function() {
        if (
ajax.readyState==4) {
            
resul.innerHTML ajax.responseText
        
}
    }
    
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    
ajax.send("busqueda="+bus)


que básicamente recoje un dato de un input y lo envía a la pagina php que dice allí,

con el ajax.send("busqueda="+bus)

como verán la variable búsqueda y lo recibo php, pero necesito que envié otra variable también de otro input, o sea que envie la variable búsqueda y otra a la misma pagina intente hacer pruebas con el código pero nada que lo logro , a ver si me pueden ayudar con un ejemplo o algo por favor .

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 17/04/2017, 20:13
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: enviar variables ajax

Te dejo un template de ajax:

function someAJAXfunction(){
var ajax = new ajax();
ajax.open("POST", "script.php", true);
ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

var var1 = document.getElementById("someElement1").value;
var var2 = document.getElementById("someElement2").value;
get js values...


ajax.send("var1="+var1+"&var2="+var2 etc....);

ajax.onreadystatechange = function(){
if(ajax.readyState == 4 && ajax.status == 200){
ajaxResponse = ajax.responseXML; //o respondeText ahí ves...
}
};

//TO DO, AND ALL THE VALUE IN: ajaxResponse
}
  #3 (permalink)  
Antiguo 17/04/2017, 22:07
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: enviar variables ajax

Solo concatena todos los valores que desees enviar mediante la cadena de consulta que pasas como argumento al método .send().

La forma es la de variable1=valor1&variable2=valor2&variableN=valorN.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 18/04/2017, 02:47
Avatar de manuparquegiralda  
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 11 años, 10 meses
Puntos: 39
Respuesta: enviar variables ajax

A ver, para empezar estás configurando AJAX para enviar los datos vía POST

Código Javascript:
Ver original
  1. ajax.open("POST", "filtro_nivel3.php",true);

Y los estás enviando vía GET

Código Javascript:
Ver original
  1. ajax.send("busqueda="+bus)

Puedes hacer de dos formas, si es via GET

Código Javascript:
Ver original
  1. function buscarDato(){
  2.     const resul = document.getElementById('resultado');
  3.    
  4.     const bus=document.frmbusqueda.dato.value;
  5.     const myVar = "mi-valor";
  6.    
  7.     var ajax=nuevoAjax();
  8.  
  9.     ajax.onreadystatechange=function() {
  10.         if (ajax.readyState==4) {
  11.             resul.innerHTML = ajax.responseText
  12.         }
  13.     }
  14.     ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  15.     ajax.open("GET", "filtro_nivel3.php",true);
  16.     ajax.send("busqueda=" + bus + "&miDato=" + myVar );
  17.  
  18. }

Si es vía POST

Código Javascript:
Ver original
  1. function buscarDato(){
  2.     const resul = document.getElementById('resultado');
  3.    
  4.     const bus=document.frmbusqueda.dato.value;
  5.     const myVar = "mi-valor";
  6.  
  7.     var datos = new FormData();
  8.     datos.append( "busqueda", bus );
  9.     datos.append( "miDato", myVar );
  10.    
  11.     var ajax=nuevoAjax();
  12.     ajax.onreadystatechange=function() {
  13.         if (ajax.readyState==4) {
  14.             resul.innerHTML = ajax.responseText
  15.         }
  16.     }
  17.  
  18.     ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  19.     ajax.open("POST", "filtro_nivel3.php",true);
  20.     ajax.send(datos );
  21.  
  22. }

Espero que te sirva.
__________________
Diseño Web - Arisman Web
  #5 (permalink)  
Antiguo 18/04/2017, 02:58
Avatar de manuparquegiralda  
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 11 años, 10 meses
Puntos: 39
Respuesta: enviar variables ajax

Otro consejo, define SIEMPRE las variables. Si no defines una variable dentro de una función esta se comporta como una variable global y puedes tener problemas.

Código Javascript:
Ver original
  1. function myFunction1() {
  2.     myVar = true;
  3. }
  4.  
  5. console.log(myVar); // Esto te dará true
  6.  
  7. function myFunction2() {
  8.     if ( !myVar ) {
  9.         console.log( "Hola soy tu función 2"); // Esto no se mostrará porque myVar es true.
  10.     }
  11. }


Código Javascript:
Ver original
  1. function myFunction1() {
  2.     var myVar = true;
  3. }
  4.  
  5. console.log(myVar); // Esto te dará undefined
  6.  
  7. function myFunction2() {
  8.     if ( !myVar ) {
  9.         console.log( "Hola soy tu función 2"); // Esto se mostrará porque myVar es undefined
  10.     }
  11. }

Como puedes ver, la variable myVar tiene un scope global en el primer ejemplo, mientras que en el segundo ejemplo solo tiene valor dentro de myFunction1.

A priori, en los ejemplos puesto puede no ser trascendente, pero cuando tengas muchos archivos de script dentro de la página las variables globales pueden ser alcanzadas por todos y puedes tener resultados inresperados.

Mi consejo, utiliza variables globales solo lo justo y necesario y cuando las uses identifícalas de alguna manera que no puedas confundirla luego con variables normales dentro de las funciones. Por ejemplo:

Código Javascript:
Ver original
  1. var _GLOB_myVar1 = "Esta es mi variable global 1";
  2. var _GLOB_myVar2 = "Esta es mi variable global 2";
  3.  
  4. function myFunction() {
  5.     var myVar1 = "Esta es mi variable 1 para esta función";
  6.     var myVar2 = "Esta es mi variable 2 para esta función";
  7. }
__________________
Diseño Web - Arisman Web
  #6 (permalink)  
Antiguo 18/04/2017, 10:23
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: enviar variables ajax

Manuel, la cadena de consulta también es válida para el envío de datos mediante el método HTTP POST. La única diferencia es que no va adherida a la URL de destino, como sí sucede con el método HTTP GET.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 18/04/2017, 20:00
 
Fecha de Ingreso: junio-2013
Mensajes: 94
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: enviar variables ajax

Cita:
Iniciado por alvaro_trewhela Ver Mensaje
Te dejo un template de ajax:

function someAJAXfunction(){
var ajax = new ajax();
ajax.open("POST", "script.php", true);
ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

var var1 = document.getElementById("someElement1").value;
var var2 = document.getElementById("someElement2").value;
get js values...


ajax.send("var1="+var1+"&var2="+var2 etc....);

ajax.onreadystatechange = function(){
if(ajax.readyState == 4 && ajax.status == 200){
ajaxResponse = ajax.responseXML; //o respondeText ahí ves...
}
};

//TO DO, AND ALL THE VALUE IN: ajaxResponse
}

Cita:
Iniciado por Alexis88 Ver Mensaje
Solo concatena todos los valores que desees enviar mediante la cadena de consulta que pasas como argumento al método .send().

La forma es la de variable1=valor1&variable2=valor2&variableN=valorN .


Cita:
Iniciado por manuparquegiralda Ver Mensaje
Otro consejo, define SIEMPRE las variables. Si no defines una variable dentro de una función esta se comporta como una variable global y puedes tener problemas.
Muchísimas gracias muchachos son los mejores de verdad

Etiquetas: ajax, html, input, text, variables
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 15:38.