使用e.preventDefault()时,查询字符串不会附加

时间:2014-01-01 08:50:33

标签: php jquery

//Jquery 

// I used the below Jquery for slide down the Div its working fine with e and   //
//e.preventDefault(). If am using that it just slidedowns and not displaying the 
//content i //mean the query string


$(".edit_inven").click(function (e) {
    $("#edititems").hide().slideDown('slow');
e.preventDefault()
});


//hyperlinks for same page

//我使用下面的Jquery向下滑动Div,它与e和//一起工作正常     //e.preventDefault()。如果我正在使用它只是滑动而不显示     // content i //表示查询字符串

<a href='inventory_list.php?pedit_id=1' class='edit_inven'>Edit</a>
<a href='inventory_list.php?pedit_id=2' class='edit_inven'>Edit</a>
<a href='inventory_list.php?pedit_id=3' class='edit_inven'>Edit</a>
<a href='inventory_list.php?pedit_id=4' class='edit_inven'>Edit</a>


//Div which holds php statements that echo outs some values   

<DIV id='edit_inven' style="display:none">
echo $_GET['pedit'];
</DIV>

4 个答案:

答案 0 :(得分:0)

e.preventDefault()是防止标签的默认行为

<!-- Default behavior upon clicking is to go to index.php. If you prevent the default, clicking does nothing unless otherwise specified -->
<a href='/index.php'>Link!</a>

答案 1 :(得分:0)

尝试用php标签包装echo

<?php echo $_GET['pedit']; ?>

答案 2 :(得分:0)

尝试

window.history.pushState("", "", '/newpage');
在您的代码中

,如

$(".edit_inven").click(function (e) {
    $("#edititems").hide().slideDown('slow');
    window.history.pushState("", "", $(this).attr('href')); // here
    e.preventDefault()
});

答案 3 :(得分:0)

锚链接的嘲讽行为是跳转到另一个文档。此外,当代码到达服务器时,应该执行PHP代码$_GET['pedit_id']。在这里,您将阻止锚链接的默认行为,因此不会向服务器发送任何请求。虽然如果你需要访问查询字符串值,你可以使用jQuery本身。

$(".edit_inven").click(function (e) {

    e.preventDefault();
    var QS = $(this).attr('href').split('?');
    if(QS.length>0){
        var val = QS[1].split('=');

        if(val.length>0){
          $("#edititems").html(val[1]).hide().slideDown('slow');
        }    
    }
});

为用户更新了部分:

如果要根据url参数加载产品,则不需要进行上述解析。你可以试试

$(".edit_inven").click(function (e) {
     e.preventDefault();
     var url =  $(this).attr('href');
        $.ajax( url )
        .done(function(response) {
                 $("#edititems").html(response).hide().slideDown('slow');
        })
        .fail(function() {
              alert( "error" );
       });
});

请参阅演示演示here