我想在点击标签时通过$ .post发送参数,但是当发生这种情况时,不会发送参数。我不知道它为什么会发生。我已经看过几个有这个功能的帖子,但没有解决我的问题。这是代码:
有什么想法吗?
脚本
<script type="text/javascript">
$(document).ready(function() {
$( ".enlace_submenu" ).click(function( event ) {
var id = $(this).attr('id');
$.post("submenu.php", { name: id} );
});
});
</script>
标记
echo"<li><a href='submenu.php?id_control=".$id_control."' class=enlace_submenu data-transition='slide' id='".$id_control."'><img src='iconos_ios_7/32/".$icono."' class='ui-li-icon'>".$nombre_control."</a></li>";
submenu.php
$nombre = $_POST['name'];
echo "<p>".$nombre."</p>";
答案 0 :(得分:2)
您正在点击链接,它将离开,因此不会进行Ajax调用。如果取消单击,Ajax调用将到达服务器。
$( ".enlace_submenu" ).click(function( event ) {
var link = this;
event.preventDefault();
$.post("submenu.php", { name: id} ).done(function(){
window.location.href = link.href;
});
});
答案 1 :(得分:1)
我可以看到你的&#34; a&#34;标签,应该是:
echo"<li><a href='submenu.php?id_control=".$id_control."' class='enlace_submenu' data-transition='slide' id='".$id_control."'><img src='iconos_ios_7/32/".$icono."' class='ui-li-icon'>".$nombre_control."</a></li>";
&#13;
如果这不起作用,请参阅控制台日志(Firebug)并写下你正在获得的确切错误。
希望它对你有所帮助。
答案 2 :(得分:0)
您可以使用$ .ajax(),其工作方式与$ .post相同,更好的方式,就像这样
<script type="text/javascript">
$(document).ready(function() {
$( ".enlace_submenu" ).click(function( event ) {
var id = $(this).attr('id');
$.ajax({
url: "submenu.php",
type: "POST",
dataType: "HTML",
async: false,
data: {name: id}
success: function(data) {
alert(data)
}
});
});
});
答案 3 :(得分:0)
使用以下代码
echo"<li><a href='javascript:void(0);' class=enlace_submenu data-transition='slide' id='".$id_control."'><img src='iconos_ios_7/32/".$icono."' class='ui-li-icon'>".$nombre_control."</a></li>";
答案 4 :(得分:0)
如果我理解你的意图,你想要点击链接做两个的事情,发送一个ajax帖子和导航到href
中的网址
以下是如何做到这一点:
JS
$(".enlace_submenu").click(function() {
var $this = $(this);
if($this.hasClass("do-post")) {
$this.removeClass("do-post");
$.post("submenu.php", {name: this.id}, function(){
$(".enlace_submenu").click();
});
return false;
}
});
标记
<a href="submenu.php?id_control=36" class="do-post enlace_submenu" ...
但是,如果您解释想要实现的目标,可能会有更简单的方法来获得结果。