2012-07-27 20 views
7

Estoy tratando de usar la variable en la llamada AJAX en jquery pero no está funcionando. la variable move contiene diferentes valores. Por favor, compruebe el siguiente código:Datos variables en la llamada ajax JQUERY

var $move = 'next'; 

$.ajax({ 
    type: "POST", 
    url: "somephp.php", 
    data: {$move:1}, 
}); 

Sugiera cualquier forma de utilizar la variable $ move en los datos.

+0

datos acepta pares de valores clave. Por ahora tu $ move actúa como clave y es por eso que no funciona. Haz que sea un valor y debería funcionar. Como datos: {"data": $ move} – AdityaParab

+1

Creo que lo que el usuario está preguntando es cómo pasar algo diferente para la parte clave del par de valores. –

+1

¿Qué sucede si realmente quiere usar la variable como clave? –

Respuesta

3

Cabe

$.ajax({ 
    type: "POST", 
    url: "somephp.php", 
    data: {"data":$move}, 
}); 
+0

$ movimiento es la clave, no el valor. –

+0

Supongo que quiere publicar el valor de $ movimiento. Esperemos a que lo aclare. :) – AdityaParab

+1

En realidad, me parece que '$ move' es una variable, y el OP desea utilizarlo como la clave, y el valor debe ser' 1'. ¡Hasta ahora solo Wolfram lo hizo bien! – adeneo

8

Si usted quiere tener un variable variable de en su solicitud POST, tendrá que hacer un objeto separada JSON:

var name = 'next'; 
var dataObject = {}; 
dataObject[name] = 1; 

$.ajax({ 
    type: "POST", 
    url: "somephp.php", 
    data: dataObject, 
    complete : function() { 
    // success! 
    } 
}); 
+1

Tuve que resolver esto con mucha investigación, así que como referencia, cuando 'data' es un PlainObject y no una String, usar' complete: function (response) 'devuelve un PlainObject. Por ejemplo, 'alert (response)' devuelve '[object Object]' y 'console.log (response)' devuelve 'Object {readyState: 4, responseText:" example ", status: 200, statusText:" OK "}' . Para recuperar 'responseText', use' success: function (response) '. –

0

Para publicar el valor de la variable $ move, haga esto:

$.ajax({ 
    type: "POST", 
    url: "somephp.php", 
    data: {move: $move} 
}); 
1

Usted puede hacer algo como data: $move+"=1"

+0

Error de sintaxis :) – AdityaParab

+0

Respondido con el supuesto de que el usuario quiere la variable como clave. –

+0

+1, esto funciona y, a diferencia de la mayoría de las otras respuestas (no la mía, por supuesto :)), resuelve el problema correcto. – Wolfram

9

Si desea utilizar la variable como el nombre de la propiedad, el uso de la notación de matriz.

There are two ways to access object members: dot notation and bracket notation (a.k.a. subscript operator).

su código con la notación de matriz:

var $move = 'next'; 
var data = {}; 
data[$move] = 1; 

$.ajax({ 
    type: "POST", 
    url: "somephp.php", 
    data: data, 
}); 

The example on jsfiddle (. El cargo, obviamente, no funciona, a fin de comprobar la consola para ver lo que se ha escrito)

+1

Tuve un problema similar (necesario para permitir una variable dentro del nombre) y esto es exactamente lo que se necesitaba. – Voodoo

-1

Parece que estás tratando de usar una variable de PHP en JavaScript. Puede usar .serialize para recopilar datos y pasarlos a la llamada ajax. Pero en cuanto a realizar llamadas con diferentes variables nombradas para el nombre del par de valores, deberá reunir esa información de la página php que está pasando.

Ejemplo:

$.get("jQueryFunctions.php?action=checkCaptula",$('#resetPasswordDiv :input').serialize()).done(function(data){ .... 

bien este es un .get en lugar de un .ajax, es sólo la abreviatura de la llamada .ajax. El passwordDiv contiene entradas HTML con nombres e id. Recopila la información y la pasa a la página php para su procesamiento.

Cuestiones relacionadas