我正在尝试通过页面刷新做一些事情(但我认为我的方式,将需要页面刷新。最终目标是没有一个。
我有两个错误,一个是基本的html,另一个是不了解Ajax。
HTML问题
当我点击此元素旁边的链接时:
<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>
然后执行这段JS:
(function($){
$(document).ready(function(){
$('a').click(function(){
var el = $(this).prev('input[type="checkbox"]');
if(el.is(':checked')){
el.prop('checked',false);
}
});
});
})(jQuery);
取消选中它,但页面刷新并滚动到顶部。我假设有一种方法可以阻止这种情况,或者可能是我在<a href="">
部分使用“#”的愚蠢行为?
Ajax问题
除了将信息从客户端传递到服务器之外,我根本不理解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
回声 - 如果可能,请退出页面刷新。
我的问题是,我不理解我所做的一切是否正确,除了java脚本以取消选中元素which I got from the answer to this question。
请帮忙,想法是:单击禁用,禁用复选框,通过将元素名称传递给PHP来回显元素名称 - 如果可能的话,不刷新页面。
更新
此类永远不会被实例化。永远。任何地方。想法是通过单击完成所有操作,我想单击禁用,让它将元素名称传递给类,然后该类通过页面刷新回显变量...
答案 0 :(得分: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);
答案 1 :(得分:0)
虽然您当然可以使用Arun的答案,但您可以删除href属性,它不会转到页面顶部和/或刷新。
答案 2 :(得分:0)
HTML问题:正如Arun所说,使用e.preventDefault()
来阻止默认点击操作。
AJAX问题:我注意到你没有回复你的网址。变化
<?php CORETHEME_ADMIN_TEMPLATE_HELPER . 'UncheckPackageThemeHelper.php';?>
到
<?php echo CORETHEME_ADMIN_TEMPLATE_HELPER . 'UncheckPackageThemeHelper.php';?>