【问题标题】:How to send or assign Jquery Variable value to php variable?如何将 Jquery 变量值发送或分配给 php 变量?
【发布时间】:2014-08-26 12:16:50
【问题描述】:

我从这篇文章 [How to send or assign Jquery Variable value to php variable? 得到了答案,但不知何故我的 PHP 无法获取从 Jquery 传递的值
这是html代码

<a href="random.php" id="comp1">comp1</a>
<a href="random.php" id="comp2">comp2</a>
<a href="random.php" id='comp3'>comp3</a>

jQuery 代码

$('a').click(function(){
    $.ajax({
        type: 'POST',
        url:'random.php',
        data: {name:$(this).attr('id')
    }           
    }).done(function(msg){
        alert(msg)
    })
})

和 PHP 代码

<?php
$id = $_POST['name']  ;
echo $id;

?>

【问题讨论】:

  • 尝试使用成功和错误处理程序而不是 .done() 东西,我从未见过它以这种方式使用。
  • 实际上,它仍然会提醒 msg 但 PHP 不会回显 $id
  • 打开开发者工具,查看您实际发送给 PHP 的请求。

标签: php jquery


【解决方案1】:

我猜你可能想使用e.preventDefault(); 来防止超链接的默认行为。 因为你的&lt;a 标签有一个指向random.php 的链接,可以跳转到另一个页面。

 $('a').click(function(e){
     e.preventDefault();
     .....
 }

你的代码可能是这样的:

$('a').click(function(e){
    e.preventDefault();
    $.ajax({
        type: 'POST',
        url:'random.php',
        data: {name:$(this).attr('id')}           
    }).done(function(msg){
     alert(msg);
  });
});

event.preventDefault()的文档在这里:
http://api.jquery.com/event.preventdefault/


这可能不是主要问题,但您不必像这样向random.phphref

  <a href="random.php" id="comp1">comp1</a>

我猜你可以这样:

  <a href="#" id="comp1">comp1</a>

或者像这样:

  <a href="javascript:void(0)" id="comp1">comp1</a>

您可能想阅读此页面:

Which "href" value should I use for JavaScript links, "#" or "javascript:void(0)"?

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    试试这个,你需要阻止 onclick 动作去那个页面。

    $(document).ready(function() {
        $("a").click(function() {
            $.ajax({
                type: "POST",
                url: "random.php",
                data: {"name" : $(this).attr('id')}
            }).done(function( msg ) {
               alert( "Data Saved: " + msg );
           });
        return false; // prevent from browsing that page
        });
    });
    

    【讨论】:

    • 你能告诉我我的错误是什么吗?因为我一直在检查错误,但我什么也没看到
    • 对不起,在我的本地计算机上我忘了添加 } ,您只需要添加 return false 以防止浏览并转到 random.php 页面。
    【解决方案3】:

    HTML:

    <a href="javascript:;" id="comp1">comp1</a>
    <a href="javascript:;" id="comp2">comp2</a>
    <a href="javascript:;" id='comp3'>comp3</a>
    

    JS:

    $('a').click(function(){        
        $.ajax({
            type: "POST",
            url: 'random.php',
            data: { name: $(this).attr('id') }
        })
        .done(function( msg ) {
            alert( msg );
        });
    });
    

    在事件处理程序中使用href="javascript:;" attr 或e.preventDefault(); 来阻止链接执行。

    【讨论】:

      猜你喜欢
      • 2013-05-23
      • 2014-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-19
      • 2023-03-26
      • 1970-01-01
      相关资源
      最近更新 更多