Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击标记时传递jquery参数_Javascript_Php_Jquery - Fatal编程技术网

Javascript 单击标记时传递jquery参数

Javascript 单击标记时传递jquery参数,javascript,php,jquery,Javascript,Php,Jquery,我想通过$发送。当我点击标签时,发布一个参数,但当这种情况发生时,参数不会被发送。我不知道为什么会这样。我已经看了好几篇有这些功能的文章,但都没有解决我的问题。代码如下: 有什么想法吗 脚本 <script type="text/javascript"> $(document).ready(function() { $( ".enlace_submenu" ).click(function( event ) {

我想通过$发送。当我点击标签时,发布一个参数,但当这种情况发生时,参数不会被发送。我不知道为什么会这样。我已经看了好几篇有这些功能的文章,但都没有解决我的问题。代码如下:

有什么想法吗

脚本

<script type="text/javascript">
        $(document).ready(function() {
            $( ".enlace_submenu" ).click(function( event ) {
                var id = $(this).attr('id');

                $.post("submenu.php", { name: id} );
            });
        });
</script>

$(文档).ready(函数(){
$(“.enlace_子菜单”)。单击(函数(事件){
var id=$(this.attr('id');
$.post(“submenu.php”,{name:id});
});
});
标签

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>";
echo“
  • ”;
    submenu.php

    $nombre = $_POST['name'];
    echo "<p>".$nombre."</p>";
    
    $nombre=$\u POST['name'];
    回声“”$nombre.

    ”;
    您可以使用$.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)                  
                }
            }); 
        });
    });
    
    
    $(文档).ready(函数(){
    $(“.enlace_子菜单”)。单击(函数(事件){
    var id=$(this.attr('id');
    $.ajax({
    url:“submenu.php”,
    类型:“POST”,
    数据类型:“HTML”,
    async:false,
    数据:{name:id}
    成功:功能(数据){
    警报(数据)
    }
    }); 
    });
    });
    

    当您单击某个链接时,它将导航到别处,因此不会进行Ajax调用。如果取消单击,Ajax调用将到达服务器

    $( ".enlace_submenu" ).click(function( event ) {
        var link = this; 
        event.preventDefault(); 
        $.post("submenu.php", { name: id} ).done(function(){
            window.location.href = link.href;
        });
    });
    

    使用以下代码

    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>";
    
    echo“
  • ”;
    如果我理解您的意图,您需要单击链接做两件事,发送ajax帖子,并导航到
    href
    中的url

    以下是您如何做到这一点:

    JS

    加价

    <a href="submenu.php?id_control=36" class="do-post enlace_submenu" ... 
    

    我可以在您的“a”标记中看到一个错误,它应该是:


    echo“
  • 看不出为什么这不起作用。代码中是否有其他与您不共享的部分相关?另外,尝试在处理程序中添加
    event.preventDefault()
    。其他jQuery是否正常工作?如果不是,也许jqueryinclude不起作用。否则,您能告诉我们您是否在浏览器控制台中看到任何错误吗?@D4V1D我想没有。我现在和以前都试过,但是当我点击标签时,它不会重定向到另一个页面。@sunny控制台上没有错误。@Rubén:Ajax调用不会重定向,所以这是完全正常的。您是否已在控制台中检查请求的返回?能否详细说明“以更好的方式”?如何
    $.ajax()
    优于
    $.post()?特别是当文档声明“这是一个速记Ajax函数”时。阅读此链接的第二段,您甚至可以参考此,$,Ajax()当然有助于同步,但对于OP需求,无需使用
    $.Ajax()超过
    $.post()(OP没有尝试执行同步调用或获取JSON数据)。这不起作用。当我点击标签时,它不会重定向到另一个页面。当我点击标签时,它不会重定向到另一个页面。你有一个竞争条件。为什么一次点击就可以发布和导航。您需要等待帖子,而不是导航。是的,现在会发生这种情况,但我在$post之前继续收到重定向。如果使用window.location.href=link.href;我重新加载页面,因此我丢失了值?如果我看到请求返回,它会正确显示,但不会显示在页面中。为什么这是可能的?你说你需要使用链接导航,这就是我添加它的原因。如果想要返回的内容,为什么要调用Ajax?只需发布一个表单、导航或使用Ajax调用替换内容。
    
    <a href="submenu.php?id_control=36" class="do-post enlace_submenu" ...