【问题标题】:Pass variable via Javascript通过 Javascript 传递变量
【发布时间】:2011-10-19 21:53:38
【问题描述】:

如何将变量 ($member_id) 传递到目标 php 页面(会员资料详情查询)?

///-----



 echo '<div id="show_profile_box">Show Member Profile details 
        //MySQL Query to display member profile details</div>

    <div id="display_member_id"><a href="show_profile.php"?member_id=$member_id">Display Member id</a></div>';

echo '<script>
    $("#show_profile_box").hide(100);
    $("#display_member_id").click(function () { 
        $("#show_profile_box").show(500); 
    });
    </script>';

谢谢。如果您需要更多信息,请告诉我。

* 整个想法是显示/显示选定的成员个人资料详细信息。 *

【问题讨论】:

  • 这个问题与 jQuery 或 MySQL 有什么关系? $member_idPHP 是变量吗?
  • 根据我对 PHP 的一点经验,它应该类似于 ...&lt;a href="show_profile.php"?member_id=' .$member_id . '"&gt;.....
  • 请记住页面不会刷新,因此必须通过 Ajax 添加,但我无法弄清楚。
  • 那么$member_id到底是在哪里定义的?它的价值是什么?我认为它是具有预定义值的现有变量,抱歉。

标签: php javascript jquery


【解决方案1】:

您正在使用单引号。单引号不解析 PHP 变量。从 PHP 输出多行 HTML 时,使用 heredoc:

echo <<< END_OF_HTML
<div id="show_profile_box">Show Member Profile details 
   <!--MySQL Query to display member profile details -->
</div>

<div id="display_member_id">
   <a href="show_profile.php?member_id={$member_id}">Display Member id</a>
</div>

<script>
    $("#show_profile_box").hide(100);
    $("#display_member_id").click(function () { 
        $("#show_profile_box").show(500); 
    });
</script>
END_OF_HTML;

另外,请注意变量不必用{} 括起来,但这样做仍然是一个好习惯。

这将创建一个类似“show_profile.php?member_id=3”的链接,如果您单击该链接,将调用带有$_GET['member_id'] = 3 的脚本。您甚至可以通过 click 事件中的 XHR 调用获取页面内容:

$.get($(this).attr('href'), function(data) { /* process data here */ });

【讨论】:

  • 试过了。单击链接转到 show_profile.php 页面。这不是我想要的。我希望它显示包含 的 show_profile_box。谢谢。
  • @Frank,如果您不想点击href 属性中指定的链接,您的click 事件必须返回false
【解决方案2】:

你的意思是像

<script type="text/javascript">
var member_id = <?= $member_id ?>;
</script>

?

【讨论】:

    【解决方案3】:

    您已经为 member_id 添加了一个查询字符串键/值,因此您可以访问 PHP 页面上的 $.GET 变量来检索 member_id:

    $member_id = $.GET["member_id"];

    您正在寻找的 AJAX 功能示例:

    $.GET("show_profile.php?member_id=<your_member_id>", null, function(data){
        $("#show_profile_box").html(data);
    });
    

    【讨论】:

    • 是的,但是如何通过 javascript 将此变量传递给 php 页面?
    • 如果您不想将用户发送到另一个页面(将其显示在您的#show_profile_box 中),那么您必须使用 AJAX 从服务器获取信息并显示它。见:api.jquery.com/jQuery.get
    【解决方案4】:

    如果我没听错,你需要在 php 中执行此操作:

    echo '<script type="text/javascript">memberID =' . $memberID . ';></script>;
    

    我假设您希望在单击等特定操作上执行此操作,因此您在 onlick 处理程序中指定一个 js 函数,该函数获取全局 JS 变量 memberID 的值并对您的其他页面进行 AJAX 调用。

    【讨论】:

      猜你喜欢
      • 2018-06-28
      • 2011-07-23
      • 1970-01-01
      • 1970-01-01
      • 2014-12-23
      • 1970-01-01
      • 2013-01-12
      • 2013-03-05
      • 2011-12-06
      相关资源
      最近更新 更多