【问题标题】:Show different header info based on user selection根据用户选择显示不同的标题信息
【发布时间】:2018-08-02 03:18:57
【问题描述】:

在我的 header.php 文件中,我有一个“选择城市”按钮,单击该按钮会显示城市列表。当我点击城市时,我希望根据所选城市更改地址和电话号码等联系信息。因此,如果用户转到另一个页面,更新的信息会保留。我以为我需要使用 PHP 会话,所以我从这个开始:

JS:

$("#cities-list li").click(function(){
  var city = $(this).text();

  $.post("/city.php", {"city": city});
  console.log(city);
});

HTML:

   <ul id="cities-list">
     <li id="nyc">NY</li>
     <li id="la">LA</li>
   </ul>

PHP (city.php):

<?php
    session_start();
    $_SESSION['city'] = $_POST['city'];
    echo $_SESSION['city'];
?>

点击一个城市后,我通过刷新来查看city.php页面,但是页面是空的。这是我选择的错误方法吗?什么是正确的?我怎样才能实现我想做的事情?

【问题讨论】:

  • 你的console.log() 输出什么?
  • City.php 仅在您从帖子中访问时才会返回城市名称。当您通过网络浏览器访问它时,它将显示为空白,因为设置 $_POST 变量的唯一时间是您执行发布操作时。试试看:点击链接时检查您的网络活动。在 chrome 中:检查 > 网络。然后点击链接,看看输出是什么。
  • @BojanSrbinoski 我点击的城市名称。
  • 您也可以使用 cookie 而不是 PHP 会话,这将允许它在关闭浏览器时持续存在

标签: php jquery ajax session


【解决方案1】:

您可以使用带有name 属性的表单提交,仅带有 html,例如:

<form action="action_page.php" method='POST'>
  <ul id="city" name='city'>
    <li id="nyc">NY</li>
    <li id="la">LA</li>
  </ul>
  <input type='submit' id='btnGo' name='btnGo' value='Submit' />
</form>

然后在你的 PHP 上(在本例中为 action_page.php),

<?php
    session_start();
    $_SESSION['city'] = $_POST['city'];
    echo $_SESSION['city'];
?>

在这种方法中,您的 jQuery 是可选的,用于页面操作。就像在第一页的其他地方触发 $('#btnGo').click() 按钮一样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多