2012-07-27 23 views
7

jqueryでAJAX呼び出しで変数を使用しようとしていますが、機能していません。 move変数には異なる値が含まれています。次のコードを確認してください:ajax呼び出しの変数データJQUERY

var $move = 'next'; 

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

$ move変数をデータに使用する方法を教えてください。

+0

データはキー値のペアを受け入れます。 今のところ、あなたの$ moveは鍵として行動しているので、それは機能していません。データを好きにしてください:{"data":$ move} – AdityaParab

+1

私は、ユーザーが何を求めているかは、値のペアのキー部分に異なるものを渡す方法だと思います。 –

+1

実際に変数をキーとして使用する場合はどうなりますか? –

答えて

3

はそれがあるべき

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

$ moveは値ではなくキーです。 –

+0

彼は$ moveの価値を投稿したいと思う。 彼が明確になるのを待つ。 :) – AdityaParab

+1

実際には、 '$ move'が変数で、OPがキーとして使用しようとしているように見え、値は' 1'でなければなりません。これまでのところ、Wolframだけが正しいのです! – adeneo

8

あなたはPOSTリクエストで可変変数を持つようにしたい場合は、 あなたは別々 JSONオブジェクトを作成する必要があります。

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

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

私は多くの研究でこれを理解しなければならなかったので、 'data'がPlainObjectでありStringでなく、' complete:function(response) 'を使うと、PlainObjectが返されます。例えば、 'alert(response)'は '' [object object] 'を返し、' console.log(response) 'は' Object {readyState:4、responseText: "example"、status:200、statusText: "OK"} ' 。したがって 'responseText'を検索するには' success:function(response) 'を使います。 –

0

$ move変数の値を投稿するには、次のようにしてください:

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

あなたは配列表記を使用して、プロパティの名前として変数を使用する場合は、data: $move+"=1"

+0

構文エラー:) – AdityaParab

+0

ユーザーが変数をキーとして使用することが前提です。 –

+0

+1、これは動作し、他のほとんどの回答とは対照的に(もちろん私ではありません:))、それは正しい問題を解決します。 – Wolfram

9

ような何かを行うことができます。

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

配列表記を使用してコード:

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

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

The example on jsfiddle(ポストは明らかに動作するので、掲載されますかを確認するためにコンソールをチェックしません。)

+1

私は同様の問題(名前の中に変数を入れるために必要)があり、これがまさに必要なものです。 – Voodoo

-1

javascriptでPHP変数を使用しようとしているようです。 .serializeを使用してデータを収集し、ajax呼び出しに渡すことができます。しかし、値ペアの名前に異なる名前付き変数を使って呼び出しを行う場合は、渡すPHPページからその情報を収集する必要があります。

例:

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

これは代わりにアヤックスのに.getであるが、それはアヤックスの呼び出しのためだけ速記です。 passwordDivには、名前とIDを持つHTML入力が含まれています。情報を収集し、処理のためにPHPページに渡します。

関連する問題