不确定如何设置Ajax

时间:2013-08-11 17:34:05

标签: php jquery html ajax

请务必阅读整个问题,此处有两个问题。

另请注意:我对ajax很新,不知道我在做什么,我已经阅读过Jquerys Ajax文档,但我不确定我应该做什么。

问题1

recently asked a question关于如何做到但没有人回答关于Ajax的核心问题,他们都非常关注HTML,所以这次我会更加向前。

我对以下元素有以下ajax函数:

<label class="checkbox">
    <input type="checkbox" name="aisis_options[package_Aisis-Related-Posts-Package-master]" 
    value="package_Aisis-Related-Posts-Package-master" checked=""> 
        Aisis-Related-Posts-Package-master <a href="#">(Disable)</a>
</label>


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

现在我不确定我是否认为你有http://localhost/path/to/class,但它吓坏了说:

Uncaught SyntaxError: Invalid flags supplied to RegExp constructor 'www' admin.php?page=aisis-core-upload:239

那么设置它的正确方法是什么?

问题2

上面的Ajax假设它们是表单提交,但是查看复选框旁边的“禁用”链接,表单提交元素。那么如何在不提交表单的情况下将元素名称传递给类,并且仍然让类回显名称?

这就是我班上的样子:

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;
        }
    }
}

你可以看到我正在回显元素名称,现在我正在使用GET,并在Ajax中声明它的GET请求,但它不是 - 我不这么认为。我没有提交任何形式,我无意提交表格。我只想点击该链接,取消选中该复选框,将该元素的名称传递给该类并回显该名称。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

第一个问题的原因是/var/www是正则表达式/ var / with flag www,normal flags是gim。您需要将该路径作为字符串:

url  : "/var/www/wordpress/wp-content/themes/Aisis-Framework/CoreTheme/AdminPanel/Template/Helper/UncheckPackageThemeHelper.php",

并且您应该只根据"/wordpress/wp-content/""/wp-content/"放置,具体取决于您的根目录。

第二个问题:你使用ajax中的数据发送$ _GET,并且要从php获取echo值,你需要添加回调函数:

      $.ajax({
          url  : "/wp-content/themes/Aisis-Framework/CoreTheme/AdminPanel/Template/Helper/UncheckPackageThemeHelper.php",
          type : 'GET',
          data : { 'element_name' : el.prop('name') },
          success: function(result) {
              alert(result);
          }     
      });