我正在尝试在不刷新页面的情况下做某事(但我认为我这样做的方式需要刷新页面。最终目标是没有页面刷新。
我有两件事不对,一是基本的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,所以我在上面的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 脚本取消选中 我从这个问题的答案中得到的元素。
请帮助,这个想法是:单击禁用,禁用复选框,通过将元素名称传递给 PHP 来回显元素名称 - 如果可能,无需刷新页面。
更新
这个类永远不会被实例化。曾经。任何地方。这个想法是通过单击来完成这一切,我想单击禁用,让它将元素名称传递给类,然后该类在不刷新页面的情况下全部回显变量......