0

処理する xml 情報を取得する php 関数がありますが、問題は ajax から返されたデータに加えて関数にパラメーターを渡すことです。

$.ajax({
    type: "POST",
    url: 'proxy.php',
    data:{country:'home'},
    dataType: "xml",
    success: function(data)
    {
       alert(data);
    },
    error : function(XMLHttpRequest, textStatus, errorThrown) {
        alert(XMLHttpRequest);
        alert(textStatus);
        alert(errorThrown);
        alert(XMLHttpRequest.responseText);
    }
});

data でパラメータを渡したい。私は次のようにできることを知っています:

$.ajax({
    type: "POST",
    url: 'proxy.php',
    data:{country:'home'},
    dataType: "xml",
    success: function do_it(parameter)
});
function do_it(parameter)
{
   return function(data)
  {
    alert(parameter);
    alert(data);
  }
}

最初のコードが表示されているように、パラメーターを渡したいので、この方法を使用したくありません。出来ますか?

4

2 に答える 2

1

contextにオプションを使用できます$.ajax。これはthis、コールバックのように利用可能になります。

$.ajax({
    type: "POST",
    url: 'proxy.php',
    data:{country:'home'},
    dataType: "xml",
    context: parameter,
    success: function(data)
    {
       alert(data);
       alert(this);
    },
    error : function(XMLHttpRequest, textStatus, errorThrown) {
        alert(XMLHttpRequest);
        alert(textStatus);
        alert(errorThrown);
        alert(XMLHttpRequest.responseText);
    }
});
于 2013-07-16T09:20:39.027 に答える
0

パラメーターが AJAX 呼び出しの影響を受けない場合は、呼び出しと同じスコープでパラメーターを定義し、success 関数からアクセスします。例えば:

var parameter = 'some value';
$.ajax({
    type: 'post',
    url: 'proxy.php',
    data: {country: 'home'},
    dataType: 'xml',
    success: function (data) {
        alert(parameter);
        alert(data);
    },
    error: function (XMLHttpRequest, textStatus, errorThrown) {
        alert(XMLHttpRequest);
        alert(textStatus);
        alert(errorThrown);
        alert(XMLHttpRequest.responseText);
    }
});

これparameterは、外側のスコープにあるため、成功関数からアクセスできるため機能します。

于 2013-07-16T09:18:12.620 に答える