2012-07-27 21 views
7

JQuery'de AJAX çağrısında değişken kullanmaya çalışıyorum ama çalışmıyor. taşıma değişkeni farklı değerler içeriyor. Aşağıdaki kodu kontrol edin: Ajax çağrısında değişken veriler JQUERY

var $move = 'next'; 

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

$ kullanmak verilerdeki değişkeni taşımak için herhangi bir şekilde öner.

+0

veri anahtar değer çiftlerini kabul eder. Şu an için $ hareketiniz anahtar olarak davranıyor ve bu yüzden çalışmıyor. Bir değer yapalım ve işe yaramalı .. Veriler: {"data": $ move} – AdityaParab

+1

Kullanıcıların sordukları şey, değer çiftinin anahtar kısmı için farklı bir şeyi nasıl geçeceğidir. –

+1

Gerçekten de değişkeni anahtar olarak kullanmak isterse? –

cevap

3

O olmalıdır

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

$ hareket anahtarı değil değerdir. –

+0

Sanırım $ hareketinin değerini göndermek istiyor. Açıklığa kavuşmasını bekleyelim. :) – AdityaParab

+1

Aslında, bana '$ move' bir değişken ve OP'nin bunu anahtar olarak kullanacağını ve değerin' 1 'olması gerektiğini düşünüyor. Şimdiye kadar sadece Wolfram haklı çıktı! – adeneo

8

Eğer POST isteğinde bir değişken değişken sahip olmak istiyorsanız, bir ayrı JSON nesnesi yapmak gerekecektir:

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

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

Bunu bir çok araştırmayla anlatabildim, yani referans için, 'data' bir PlainObject olduğunda ve bir String değilken, 'complete: function (response)' kullanarak bir PlainObject döndürür. Örneğin, '' uyarı (response) '' '' 'object object''''' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '{hazırState: 4, responseText: 'example', status: 200, statusText; . Yani 'responseText' almak için, 'success: function (response)' işlevini kullanın. –

0

$ Move değişkeni değerini yüklemek için şunu yapın:

$.ajax({ 
    type: "POST", 
    url: "somephp.php", 
    data: {move: $move} 
}); 
012 Eğer mülkiyet, kullanım Dizi açıklamasında adı olarak değişken kullanmak istiyorsanız
1

Sen data: $move+"=1"

+0

Sözdizimi hatası :) – AdityaParab

+0

Varsayım kullanıcısıyla yanıt veren değişken olarak anahtar ister. –

+0

+ 1, bu ve diğer cevapların çoğu (tabii ki benim için değil :)) aksine, doğru problemi çözmektedir. – Wolfram

9

gibi bir şey yapabilirsiniz.

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

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

The example on jsfiddle (. Sonrası besbelli çalışmak, böylece yayınlanmıştır alır ne olduğunu görmek için konsolu kontrol etmez)

+1

Benzer bir problemim vardı (adın içinde bir değişkene izin vermek gerekiyordu) ve bu tam olarak ihtiyaç duyulan şeydi. – Voodoo

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

dizi gösterimi ile Kodunuz

Javascript'te bir PHP değişkeni kullanmaya çalışıyorsunuz gibi görünüyor. Verileri toplamak ve ajax çağrısına iletmek için .serialize kullanabilirsiniz. Ancak, değer çiftinin adı için farklı adlandırılmış değişkenler ile arama yapmak için, bu bilgileri ilettiğiniz php sayfasından almanız gerekir.

Örnek: Bu yerine .ajax bir .get iken

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

, bu .ajax çağrı için sadece steno bu. PasswordDiv, adlara ve kimliğe sahip HTML girişleri içerir. Bilgileri toplar ve işlenmek üzere php sayfasına aktarır.

İlgili konular