【发布时间】:2013-08-11 11:53:45
【问题描述】:
我正在尝试在不刷新页面的情况下做某事(但我认为我这样做的方式需要刷新页面。最终目标是没有页面刷新。
我有两点不对,一是基本的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);
取消选中它,但页面刷新并滚动到顶部。我假设有一种 js 方法可以阻止这种情况,或者可能是我在 <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 回显 - 如果可能,不进行页面刷新。
我的问题是,除了取消选中元素 which I got from the answer to this question 的 java 脚本之外,我不知道我所做的任何事情是否正确。
请帮忙,想法是:单击禁用,禁用复选框,通过将元素名称传递给 PHP 来回显元素名称 - 如果可能,无需刷新页面。
更新
这个类永远不会被实例化。曾经。任何地方。这个想法是通过单击来完成这一切,我想单击禁用,让它将元素名称传递给类,然后该类在不刷新页面的情况下全部回显变量...
【问题讨论】: