0

コミュニティのサポートをよりよく反映するように質問を更新しました

コミュニティのサポートに基づいて、Ajax 関数を次のように変更しました。

(function($){   
    $(document).ready(function(){
        $('a').click(function(e){
          var el = $(this).prev('input[type="checkbox"]');
          if(el.is(':checked')){
               el.prop('checked',false);   
          }
          $.ajax({
              url  : "http://localhost/wordpress/wp-content/themes/Aisis-Framework/CoreTheme/AdminPanel/Template/Helper/UncheckPackageThemeHelper.php",
              type : 'GET',
              data : { 'element_name' : el.prop('name') },      
              success: function(data, textStatus, jqXHR){
                console.log(data);
              },
              error: function(jqXHR, textStatus, errorThrown ){
                console.log(jqXHR, textStatus, errorThrown);
              } 
          });
          e.preventDefault();
        });
    }); 
 })(jQuery);

結果の PHP クラスは次のようになります。

class CoreTheme_AdminPanel_Template_Helper_UncheckPackageThemeHelper{

    private $_element_name = null;

    public function __construct(){
        if(isset($_GET['element_name'])){
            $this->_element_name = $_GET['element_name'];
            echo $this->_element_name;
        }
    }
}

[ネットワーク] タブには、以下に示すように、Jquery をアクティブ化した結果の出力があることが示されています。

ここに画像の説明を入力

コンソールはエラーを吐き出していませんが、要素名をエコーし​​ていません。私はJquery Ajax APIを読みましたが、これまで行ってきたことはすべて正しいようです。それでも、私は望ましい出力を得ていません。

注:応答タブは空です....つまり、応答が返ってきません。

4

3 に答える 3

7

You're not passing in the event to your click handler.

Use.

$('a').click(function(e){
   // Your code
});

      $.ajax({
          url  : "<?php echo CORETHEME_ADMIN_TEMPLATE_HELPER_URL . 'UncheckPackageThemeHelper.php'; ?>",
          type : 'GET',
          data : { 'element_name' : el.prop('name') },      
          success: function(result) {
            console.log(result)
          },
          error: function(jqXHR, textStatus, errorThrown ){
             console.log(jqXHR, textStatus, errorThrown);
          } 
      });
于 2013-08-12T15:00:58.613 に答える
0

状況を単純化します。少しの間、AJAX プロセッサ ファイル (UncheckPackageThemeHelper.php) を次のように変更します。

UncheckPackageThemeHelper.php

<?php
    $test = $_POST['element_name'];
    $r = 'PHP received: [' .$test. ']';
    echo $r;
    die();

また、AJAX 成功関数を次のように変更します。

      success: function(result) {
        alert(result);
      },

少なくとも、これにより、AJAX が正常に機能していることがわかります。

次に、AJAX プロセッサ ファイルに何かを追加し始め (一度に 1 つまたは 2 つ)、何かをエコーし​​続けて、エラーが発生している場所を発見できるようにします。

于 2013-08-12T15:40:49.700 に答える