【问题标题】:Change href depending on php response根据php响应更改href
【发布时间】:2016-01-09 11:48:35
【问题描述】:

我想根据从 mysql 数据库接收到的数据更改 morestorieslink 的 href,即如果没有从服务器返回的行,则 DOM 元素 morestorieslink 的 href 应该更改

我正在使用它来更改 href 值

if (mysql_num_rows($result) == 0) {
                    ?>
                    <script type="text/javascript">
                        document.getElementById("morestorieslink").href="select.php?<?php echo $selecturl?>=<?php echo $select; ?>&select=Continue";
                    </script>
                    <?php
                    echo "Url Changed";
                }

在这种情况下,javascript 不起作用但会显示 echo,我还尝试在 php echo 中嵌入 javascript。 谢谢你

【问题讨论】:

  • 你不应该echo你的脚本吗?
  • echo "&lt;script type='text/javascript'&gt;\n"; ......javascript goes here... echo "&lt;/script&gt;"; 喜欢这样吗?
  • 正如我在上面也提到的,我试过了,但还是一样@SandeepNayak
  • 您的元素 id = "morestorieslink" 在此语句之前创建了吗?
  • 所以当你写上面的代码时链接没有改变对吧?如果是,那么首先 echo $selecturl;echo $select; 在脚本之前检查它们返回的内容并告诉我。

标签: javascript php html


【解决方案1】:
 if (mysql_num_rows($result) == 0) {
 ?>
 <script type="text/javascript">
     // wait for dom to finish loading properly.
     document.addEventListener("DOMContentLoaded", function(event) { 
        document.getElementById("morestorieslink").href="select.php?<?php echo $selecturl?>=<?php echo $select; ?>&select=Continue";
     });
 </script>
 <?php
       echo "Url Changed";
 }

把它放在页面的最后,说明在此之后不会执行任何java脚本。休息一切看起来不错。

希望对您有所帮助。

注意:

您提到的 href 将附加到现有的 url。

还要检查 $selecturl 或 $select 不为 null 和 isset。

您还可以检查页面源以检查链接是否正确生成(在 mozilla 中使用 Firebug)

【讨论】:

    【解决方案2】:

    你可以使用三元运算符。比如:

    <?php echo $select ? $selecturl.$select :  $otherURL;?>
    

    我假设您的网址会根据 $select 的值发生变化

    【讨论】:

      猜你喜欢
      • 2011-05-30
      • 2017-09-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-31
      • 1970-01-01
      • 2019-01-30
      • 2015-10-04
      • 1970-01-01
      相关资源
      最近更新 更多