【问题标题】:Multiple <a> tags changing HTML code depending on which one is selected多个 <a> 标记更改 HTML 代码,具体取决于选择哪个标记
【发布时间】:2016-09-21 05:47:22
【问题描述】:

我有以下代码..

<!-- LANGUAGE -->
<div class="languages_box">
    <span class="red">Languages:</span>
    <a href="#" class="selected"><img src="../images/au.gif" alt="" title="" border="0" height="12px" width="15px"/></a>
    <a href="#"><img src="../images/gb.gif" alt="" title="" border="0" height="12px" width="15px" /></a>
    <a href="#"><img src="../images/de.gif" alt="" title="" border="0" height="12px" width="15px" /></a>
</div>

<!-- CURRENCY -->
<div class="currency">
    <span class="red">Currency: </span>
    <a href="#" class="selected">AUD</a>
    <a href="#">GBP</a>
    <a href="#">EUR</a>
</div>

这会产生以下结果..

我正在尝试更改代码,以便当用户单击另一个标志或值时,它会更新网页以更改为选中的一个。为此,我想每个&lt;a&gt; 标签都包含一个&lt;?php if(something) {echo (class=\"selected\"); } ?&gt;,但我不确定something 是什么。

有没有办法在 PHP 中做到这一点?还是因为页面内容已经加载,所以只能在 Ajax / jQuery 中使用?

【问题讨论】:

  • 页面可以重新加载吗?单击时整页内容是否会发生变化?是多语言网站还是只是设置货币?
  • 你的意思是当你点击任何语言或货币时,内容会根据选择加载,但你无法突出显示新选择的语言或货币..正确吗?
  • @Saskiumar 这个内容在网站的每一页都有输出,所以经常重载。不,只有这个内容。只是我正在尝试的一个设置。它不会改变网站的语言,但可能会改变货币。
  • @user3438533 是的,我想在同一页面上突出显示正确选择的框。功能部分可以稍后提供。
  • 你不能以你想要的方式点击一个按钮在前端运行 PHP 代码。 PHP是服务器端(在网站到达用户浏览器之前),之后是你需要使用的js。在 jQuery 中,这是一个小任务,虽然是操作 DOM。

标签: javascript php jquery html ajax


【解决方案1】:
<?php
session_start();

echo $_SESSION['flag'];
?>
<!-- LANGUAGE -->
<div class="languages_box">
    <span class="red">Languages:</span>
    <a href="#" class="selected" id="1"><img src="../images/au.gif" alt="" title="" border="0" height="12px" width="15px"/></a>
    <a href="#" id="2"><img src="../images/gb.gif" alt="" title="" border="0" height="12px" width="15px" /></a>
    <a href="#" id="3"><img src="../images/de.gif" alt="" title="" border="0" height="12px" width="15px" /></a>
</div>

<!-- CURRENCY -->
<div class="currency">
    <span class="red">Currency: </span>
    <a href="#" <?php if ($_SESSION['flag'] == 1) { ?> class="selected" <?php } ?>>AUD</a>
    <a href="#" <?php if ($_SESSION['flag'] == 2) { ?> class="selected" <?php } ?> id="gbp">GBP</a>
    <a href="#" <?php if ($_SESSION['flag'] == 3) { ?> class="selected"  <?php } ?>>EUR</a>
</div>
<style>
    .selected{
        color:green;
        font-size:20px;
    }
</style>
<script src="js/jquery.min.js" type="text/javascript"></script>

<script>
    $(document).ready(function () {
        $('.languages_box a').click(function ()
        {
            var flagid = ($(this).attr('id'));
            var jsonData = {"flagid": flagid};
            $.ajax({
                type: 'POST',
                async: false,
                url: "testadmintest.php",
                data: jsonData,
                success: function (data) {
                    //alert(data);
                    window.location.reload();
//                    $('.currency a').removeClass('selected');
//                        if($.trim(data)==1){
//                       $('#gbp').addClass('selected');
//                    }

                }
            });
        })
    });
</script>

<?php

session_start();
unset($_SESSION['flag']);
if (isset($_POST['flagid'])) {
    $flagid = $_POST['flagid'];
    if ($flagid == 1) {
        $_SESSION['flag'] = 1;
    } else if ($flagid == 2) {
        $_SESSION['flag'] = 2;
    } else {
        $_SESSION['flag'] = 3;
    }
}

//echo"1";
?>

【讨论】:

    【解决方案2】:

    您可以使用 get 发送一个标志变量,然后:

    if(isset($_GET['flag']) && $_GET['flag'] == your flag)   
    {echo (class=\"selected\"); }
    

    为每个链接使用一个标志,并将链接的onclick函数更改为form.submit()

    【讨论】:

      【解决方案3】:

      由于您现在不关心更改的内容。所以,我假设它会单独处理。

      您已经获得了用于显示所选货币或语言的 css 类。

      因此,您的 html 将如下所示(我只是为了货币而编写它,语言将使用类似的方法):

      <!-- CURRENCY -->
      <div class="currency">
          <span class="red">Currency: </span>
          <a href="#" <?php echo ($_GET['currency']=="AUD" || empty($_GET['currency']))?'class="selected"':'';
            ?>>AUD</a>
          <a href="#" <?php echo ($_GET['currency']=="GBP")?'class="selected"':'';
            ?>>GBP</a>
          <a href="#" <?php echo ($_GET['currency']=="EUR")?'class="selected"':'';
            ?>>EUR</a>
      </div>
      

      我假设您有一个可以通过 PHP 访问的货币的 GET 参数。除此之外,您也有可能从会话变量(如 $_SESSION['language'])中访问当前选择的语言,这主要是这种情况。这一切都取决于服务器端的实现(PHP)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-06
        • 2014-09-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多