2013-08-10 2 views
0

Я пытаюсь что-то сделать с обновлением страницы (но я думаю, что, как я это делаю, потребуется обновление страницы. Конечная цель - не иметь ее.В AJAX мне нужно запустить класс?

У меня есть две вещи неправильно, один является основным HTML, другой не понимая Ajax

HTML Issue

Когда я нажимаю на ссылку рядом с этим элементом:.

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

это тогда е xecutes этого кусок JS:

(function($){ 
    $(document).ready(function(){ 
     $('a').click(function(){ 
      var el = $(this).prev('input[type="checkbox"]'); 
      if(el.is(':checked')){ 
       el.prop('checked',false); 
      } 
     }); 
    }); 
})(jQuery); 

неустановленного его, но страница обновляется и свитка к вершине. Я предполагаю, что существует способ js остановить это или, может быть, его глупость иметь «#» в части <a href="">?

Ajax вопрос

Я не понимаю Аякса вообще, кроме передачи информации от клиента к серверу, поэтому я добавил следующее к выше JS:

(function($){ 
    $(document).ready(function(){ 
     $('a').click(function(){ 
      var el = $(this).prev('input[type="checkbox"]'); 
      if(el.is(':checked')){ 
       el.prop('checked',false); 
      } 
      $.ajax({ 
       url : <?php CORETHEME_ADMIN_TEMPLATE_HELPER . 'UncheckPackageThemeHelper.php';?>, 
       type : 'GET', 
       data : { 'element_name' : el.prop('name') }  
      }); 
     }); 
    }); 
})(jQuery); 

Тогда написал следующий класс:

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

по сути, я хотел бы видеть element_name эхо, когда я нажимаю д isable link рядом с флажком отмеченного объекта - если это возможно, WITH OUT A PAGE REFRESH.

Моя проблема в том, что я не понимаю, что что-либо, что я сделал, правильно, кроме сценария java, чтобы снять отметку с элемента which I got from the answer to this question.

, пожалуйста, помогите. Идея такова: нажмите кнопку «Отключить», отключите этот флажок, эхо-имя элемента, передав его на PHP - при необходимости обновите страницу.

Update

Этот класс никогда не инстанцирован. Когда-либо. в любом месте. Идея состоит в том, чтобы сделать это всего одним щелчком мыши, я хочу нажать кнопку «Отключить», передать имя элемента в класс, а затем этот класс повторить всю переменную с обновлением страницы ...

ответ

0

HTML-выпуск: Поскольку Арун использовал e.preventDefault(), чтобы предотвратить действие по умолчанию.

AJAX Issue: Что я заметил, так это то, что вы не повторили свой URL.Изменение

<?php CORETHEME_ADMIN_TEMPLATE_HELPER . 'UncheckPackageThemeHelper.php';?> 

в

<?php echo CORETHEME_ADMIN_TEMPLATE_HELPER . 'UncheckPackageThemeHelper.php';?> 
+0

Это вещь WordPress, она будет авто Echo для меня. Это не моя проблема, моя проблема в том, как это будет работать? Как это будет, ajax, который я создал, создать экземпляр класса, передать переменную, а затем отобразить переменную на экране, как показано в классе, без БЕСПЛОДНОГО повторения страницы? вы никогда этого не объясняли. Также см. Обновление @Ankit – TheWebs

0

HTML-вопрос. Я думаю, что проблема в том, вы не предотвратили действия по умолчанию a

(function($){ 
    $(document).ready(function(){ 
     $('a').click(function(e){ 
      var el = $(this).prev('input[type="checkbox"]'); 
      if(el.is(':checked')){ 
       el.prop('checked',false); 
      } 
      e.preventDefault();//prevent the default action 
     }); 
    }); 
})(jQuery); 
+0

И Аякса? Также см. Обновленный OP. @Arun – TheWebs

0

Хотя можно, конечно, использовать ответ Арун, вы можете просто удалить HREF атрибута, и он не будет идти в верхней части страницы и/или обновить.

Смежные вопросы