我目前正在从事一个非常重要的项目,而且快完成了。
但是我仍然停留在网站核心功能的最后一部分……我想知道如何从数据库的“标题”,“描述”,“链接”三列中检索数据并打印“标题”和“描述”行添加到<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>
最佳答案
您只回显一行,因为您的回显在您的while
循环之外:
您需要将数据的echo
移动回循环IE中
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
给他们起名字。