1

次のようなJavaScriptメソッドを呼び出すボタンがあります。

processSelection = function(filename) {
  //alert('method reached');
   $.ajax({
      url: "sec/selectUsers.php",
      data: "filename="+filename,
      cache: false,
      dataType:'html',

      success: function(data) {
        //$('#uploader').html(data);
        $('#noUsers').sortOptions();
        values = $('#noUsers').children();

        for (i = 0; i < values.length; i++) {
          $(values[i]).bind('dblclick',switchUser); 
        }

        $('#addButton').bind('click',addSelection);
        $('#removeButton').bind('click',removeSelection);
        $('#submitButton').bind('click',addUsersToFile);
      },

      error: function (request, textStatus, errorThrown) {
          alert('script error, please reload and retry'); 
      }

   }); /* ajax */
}

スクリプトには送信されずselectUsers.php、エラーメッセージも送信されません。「ユーザーの追加」ボタンをクリックしても何も起こりません。他のメソッド:、、、、switchUserおよびはすでに定義されています。 removeSelectionaddSelectionaddUserstoFile

私はJavaScriptとphpにかなり慣れていないので、このプロジェクトを割り当てられて、Webサイトでメンテナンスを実行しています。私のphp_error.logにもエラーは表示されません。誰かがこの特定の問題、または一般的なデバッグについて何かアドバイスがあれば、私はそれを非常に感謝します。

クリックイベントは次のとおりです。

 <input type="button" value="add users" onclick="processSelection('<?=$drFile['name']?>')"/>

わかった、

私の問題を単純化するために、私はこれを行いました:

processSelection = function(){
              //alert('method reached');
               $.ajax({
                          url: "sec/testPage.php",
                          cache: false,
                          success: function() {
                                              alert('success');
                          },
                          dataType:'html',
                          error: function (request, textStatus, errorThrown) {
                              alert('script error, please reload and retry'); }
                     });

}

ここで、testPage.phpは、いくつかの値を含む単なるテーブルです。

ボタンをクリックすると「成功」と表示されますが、testPage.phpは表示されません。

4

1 に答える 1

0
dataType: 'HTML' 

私が知る限り、あなたの成功方法の前になければなりません。それでも機能しない場合は、次のことを試してください。

現在のボディに何も追加していないため、テストページは表示されません。画面に「成功」​​と表示されている場合、スクリプトは正常に実行されます。testPageでhtmlを生成し、すべてのhtmlをphp変数に割り当ててから、次のように返すのではなく、エコーするだけです。

 echo $myhtmlgenerated 

と変更

 success: function() { ....

 success: function(result) { 
   $(body).append(result);
 }

または、それをいじって、そのページのコンテンツを保持する特別なdivを指定することもできます。

于 2012-09-05T17:54:06.737 に答える