【问题标题】:click a link pass a session variable to the next page单击链接将会话变量传递到下一页
【发布时间】:2010-08-30 23:56:31
【问题描述】:

我有一个页面,我在其中使用 PHP while 循环来回显我们经销商的姓名和地址。对于电子邮件链接,我希望用户能够单击该链接,然后将他带到一个向该人发送电子邮件的表单。

我知道你不能混合使用 Javascript 和 PHP,那么我如何知道用户点击了哪个链接,以便我可以将该变量传递给下一页的表单?这是我的代码:

<?php while($row = mysql_fetch_array($result)) { 
          if ($row['active'] == 1) {

?>

      <div id="dealer">

          <div id="dealername">
              <h3 style="float:left;"><?php echo $row['company']; ?></h3><br/>
              <p><?php echo $row['address1']; ?><br/>
                 <?php if($row['address2'] || $row['address3']) { 
                        echo $row['address2'] . ' ' . $row['address3'] . '<br/>'; } ?>
                 <?php echo $row['city']; 
                 if ($row['state']) {
                          echo ', ' . $row['state'];
                  }
                  echo '&nbsp;&nbsp;' . $row['zip']; ?>
                  <br />
                  <?php echo $row['country']; ?>

                  <br />
                  <br />
                  Phone: <strong><?php echo $row['phone1']; ?></strong><?php if ($row['phone2']) {
                      echo ' or ' . $row['phone2']; } ?><br/>
                  <?php if($row['fax']) { echo 'Fax: ' . $row['fax'];  } ?><br />
              </p>
          </div>

          <?php if ($row['email']) {
              echo '<div class="dealerEmail">'. // need help here . '</div>';

            } ?>

        <br class="clearall" />
        </div>




<?php }} ?>

显示此代码的页面正在使用基于类似于“index.php?state=az”的 URL 的 GET 语句从数据库中提取数据。

我尝试让电子邮件链接使用“?email=...”格式,但是当我转到dealer-email.php 页面时,URL 中没有参数,我不明白。这就是为什么我试图找到一些其他方法来将某种变量传递到下一页,基于用户点击的链接。

希望这很清楚。提前感谢您的帮助。

【问题讨论】:

    标签: php javascript session variables


    【解决方案1】:

    这应该可以正常工作:

    <a href="somepage.php?email=<?php echo $row['email']; ?>">contact dealer</a>
    

    然后您在somepage.php 页面中检索数据:

    if(isset($_GET['email']))
        $email = $_GET['email'];
    else
        //redirect somewherelse
    

    【讨论】:

      【解决方案2】:

      我知道你不能混合使用 Javascript 和 PHP

      这不是真的。 Javascript 是一种客户端脚本语言,而 PHP 是服务器端脚本。它们在不同的时间、不同的机器上运行,并且运行良好。

      混合使用 Javascript 和 PHP 可能是一种心理挑战并且容易陷入陷阱,但绝对可以做到,而且经常做到。

      【讨论】:

      • 我认为 OP 的意思类似于 &lt;script&gt; var x = 42;&lt;/script&gt; &lt;?php echo $x ?&gt; 输出 42。
      【解决方案3】:

      您可以完全跳过电子邮件表单,并在链接中包含 mailto 属性。

      <a href="mailto:<?php echo $row['email'];?>">contact dealer</a>
      

      这将打开用户的默认电子邮件客户端新消息窗口并填写地址。我了解您可能希望使用自定义表单来防止有人向您的所有联系人发送垃圾邮件,但如果这是登录用户的受限区域,或 Intranet 站点,这可能有效。

      【讨论】:

      • 我不喜欢这个解决方案,因为只有少数人(至少我知道)使用甚至拥有桌面电子邮件软件。
      • @hugo:这是 2009 年关于电子邮件客户端使用情况的报告:campaignmonitor.com/stats/email-clients 桌面客户端还没有完全消亡,但从长远来看,它们的使用率似乎确实会下降。但请记住,如果这是一个 Intranet 应用程序,则特定客户端的使用可能是公司政策的强制要求。在这种情况下,使用 mailto 属性是可靠的。
      猜你喜欢
      • 1970-01-01
      • 2013-05-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-06
      相关资源
      最近更新 更多