php—如何对从数据库接收的数据运行javascript查询

qcbq4gxm  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(261)

我现在正在做一个非常重要的项目,我几乎完成了。但我被困在网站核心功能的最后一部分。。。我想知道如何从数据库的“标题”、“说明”、“链接”三列中检索数据,并将“标题”和“说明”行打印到 <div></div> 我想用 $("#anchor").attr("href", link) 链接属性 <div><a href = "" id = "anchor"></a></div> 我的问题是它只在数据库表的第一行执行javascript代码。

<html>

<head>
  <title>test001</title>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>

<body>
  <style>
    #load1 {
      background-color: green;
      height: 100px;
      width: 100px;
    }

    #load2 {
      background-color: green;
      height: 100px;
      width: 100px;
    }
  </style>

  <div id="divone">
    <div id="load">
      <div id="load1">

      </div>
      <div id="load2">

      </div>
      <div>
        <a href="" id="load3" target="_ blank">
                    Test
                </a>
      </div>
    </div>
  </div>
  <script>
    function clone() {
      var div = document.getElementById("load");
      var cln = div.cloneNode(true);
      document.getElementById("divone").appendChild(cln);
    }
  </script>
  <?php
    $conn = mysqli_connect("localhost", "id5757217_testsql01", "9977553311", "id5757217_testsql1");
              // Check connection
        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
}
    $sql = "SELECT * FROM insertion";
    $result = $conn->query($sql);
        if ($result->num_rows > 0) {
   // output data of each row
    while ( $row = $result->fetch_assoc() ) {
            $array[] = $row;
            $id = $row['ID'];
            $tle = $row['Title'];
            $des = $row['Description'];
            $lnk = $row['Link'];
            echo "<script type = text/javascript>clone()</script>";
}

} else { echo "0 results"; }
            $conn->close();
 ?>

    <script>
      var id = "<?php echo $id; ?>";
      var title = "<?php echo $tle; ?>";
      $("#load1").text(title);
      var desc = "<?php echo $des; ?>";
      $("#load2").text(desc);
      var lnk = "<?php echo $lnk; ?>";
      $("#load3").attr("href", lnk);
    </script>
</body>

</html>
4uqofj5v

4uqofj5v1#

您不应该使用javascript来创建所有div。只需在php脚本本身中执行。
您还需要将所有重复的id更改为类,因为id应该是唯一的。

<div id="divone">
    <?php
    while ($row = $result->fetch_assoc()) {
        ?>
        <div class="load">
            <div class="load1"> <?php echo $row['Title']; ?> </div>
            <div class="load2"> <?php echo $row['Description']; $> </div>
            <div> <a class="load3" href="<?php echo $row['Link']; ?>" target="_blank">Test</a> </div>
        </div>
        <?php }
?>
</div>
up9lanfz

up9lanfz2#

你只回显了一行,因为你的回显超出了你的范围 while 回路:
你得动一下你的手 echo 把数据放回循环中

echo " <script>";
 while ( $row = $result->fetch_assoc() ) {
        $array[] = $row;
        $id = $row['ID'];
        $tle = $row['Title'];
        $des = $row['Description'];
        $lnk = $row['Link'];
        echo "clone();";
        echo 'var id = "' . $id . '";';
        echo 'var title = "' . $tle . '";';
        echo '$("#load1").text(title);';
        echo 'var desc = "' . $des . '";';
        echo '$("#load2").text(desc);';
        echo 'var lnk = "' . $lnk . '";';
        echo '$("#load3").attr("href", lnk);';
}

} else { echo "0 results"; }
        $conn->close();
        echo "</script>";

更新
正如barmar在评论中所说的,您将覆盖 $("#load1") 循环的每次迭代。为了“看到”这个工作。。我会用 $("#load1").append() 因此,您至少可以“查看”正在执行的操作并相应地更改代码,或者动态创建元素,并使用 key 说出他们的名字。

相关问题