【问题标题】:Using PHP to insert a HTML tag使用 PHP 插入 HTML 标签
【发布时间】:2017-04-24 15:42:47
【问题描述】:

我有这个 HTML 标签(正文):

<body onload="startTime()" background="src/bg3.png">

我试图在刷新时更改背景,所以我用这个 PHP 代码替换了 HTML 标记:

<?php
    $id = rand(1, 7);
    echo "<body onload=".'"'."startTime()".'"'."background=".'"'."src/bg". $id . ".png".'"'.'>';
?>

返回:

<body onload="startTime()" background="src/bg5.png">

bg 后面的数字是 1 到 7 之间的随机数。

但问题是,当我检查元素时,body 标记很简单:

<body>

如果 HTML 代码由函数返回,PHP 是否只允许插入?

【问题讨论】:

  • background 应该是style 属性的一部分。你可以整天用 PHP 操作 HTML,没什么特别的。
  • “但问题是,当我检查元素时,body 标签很简单”——这表明要么有多个 body 标签,要么在页面加载后某些东西正在删除属性。
  • 你为什么要使用php 这个..它可以很容易地用一些客户端脚本语言来完成..例如javascript..
  • "如果函数返回,php 是否只允许插入 html 代码?" — 没有。
  • @Lal — 这不会更容易。如果你写 JS 比写 PHP 更有信心的话,可能看起来就是这样。

标签: php html string tags concatenation


【解决方案1】:

看来你的引号有问题..

<?php
    $id = rand(1, 7);
    echo "<body onload='startTime()' background='src/bg". $id . ".png'>";
?>

【讨论】:

    【解决方案2】:

    试试:

    echo "<body onload='startTime()' style='background:url('src/bg{$id}.png')>";
    

    你的刺痛很难理解,但我认为你搞砸了连接。

    背景是样式标签的一部分。我将 Id 作为字符串插值的一部分,而不是更多的连接并将单引号放在双引号中。

    【讨论】:

      【解决方案3】:

      决定再次尝试使用某个功能(已经尝试但没有成功):

          function changeBG() {
              //generate a random number from min to max
              var min = 1, max = 7;
              var str1 = "src/bg", str2 = ".png"
              var number = Math.floor(Math.random() * max) + min;
              var path = str1.concat(number);
              path = path.concat(str2);
              document.body.background = path;
          }
      

      这解决了,感谢所有提供帮助的人。

      【讨论】:

        猜你喜欢
        • 2015-09-16
        • 1970-01-01
        • 2018-08-25
        • 1970-01-01
        • 2013-05-15
        • 1970-01-01
        • 2016-01-01
        • 1970-01-01
        相关资源
        最近更新 更多