2011-07-05 12 views
0

似たような質問がたくさんありましたが、私はできません答えを見つける!私は$ .ajaxを使用してURLにいくつかのJavascript変数を渡し、PHPファイルを開こうとしています。しかし、Javascriptで変数を定義し、$ .ajaxの中で変数を使用しようとすると、nullが返され、変数は定義されません。この変数をどのように渡すことができますか?

ありがとうございます! -C

var searchTerm = "startups"; 
function Initialize() { 
    PopulateTable(searchTerm); 
} 
function PopulateTable(searchTerm) { 
    $.ajax({ 
      type: "POST", 
      dataType: "text", 
      data: "tableName=Events&searchTerm=" + searchTerm, 
      // It's not recognizing my JS variables inside Ajax. Has it always been this way?   
      url: "/php/postData.php", 
      success: function(data, textStatus, jqXHR){ 
       alert(data); 
      } 
     }); 
    window.location.reload(); 
} 
+2

ページを読み込んですぐにページをリロードすると、足で自分を撮影しているように見えます。私はリロードがそのajaxリクエストで "面白い"動作を引き起こしていると推測します。そのリロードを避ける方がよいでしょう。代替手段が大規模な書き換えを意味する場合は、おそらくそれをあなたの "成功"機能に入れてください。それを修正し、問題が解決しないかどうかを確認してください。 –

+0

グローバルとパラメータの使用がちょっと混乱していても、私はこれに何か間違っていることはありません。 'var searchTerm'がグローバルスコープで定義されていない可能性はありますか?グローバル変数 "searchTerm"が定義された後に "initialize"を呼び出すと仮定すると、それはうまくいくはずです。 –

+0

'searchTerm'に何かが含まれていることを確認してください... – Neal

答えて

7

$.ajax({ ... PHPのリソースへの非同期要求を起動します。 window.location.reload();は、リクエストが受信される前にページをリロードし、何かを行うことができます。ページをリロードする必要がある場合は、

 success: function(data, textStatus, jqXHR){ 
      alert(data); 
      window.location.reload(); 
     } 
+0

Doh!問題は私の顔を真っすぐ見つめていて、私は見ていませんでした。これは、window.location.reload()を移動した後に完全に機能しました。ありがとうございました! –

+0

ちょっとチャールズ、これがあなたの問題を解決したら、それを受け入れたものとしてマークしてください。そのように私はポイントを取得し、他の人に役立ちます:) – Milimetric

関連する問題