如何在javascript中使用php从db获得的数据?

如何在javascript中使用php从db获得的数据?,javascript,php,Javascript,Php,我在数据库中存储了指向图像的链接,链接是指向硬盘的,而不是http类型的链接。我设法用php获取所有数据,我想显示JavaScript旋转木马中链接的所有照片,但我不知道如何在JavaScript中使用php获取的数据。我使用php代码获取数据: mysql_connect("localhost","root",""); mysql_select_db("TEMP"); $sql = mysql_query("SELECT * FROM tv ORDER BY id ASC");

我在数据库中存储了指向图像的链接,链接是指向硬盘的,而不是http类型的链接。我设法用php获取所有数据,我想显示JavaScript旋转木马中链接的所有照片,但我不知道如何在JavaScript中使用php获取的数据。我使用php代码获取数据:

mysql_connect("localhost","root","");
    mysql_select_db("TEMP");
    $sql = mysql_query("SELECT * FROM tv ORDER BY id ASC");

    $id = 'id';

    $path = 'path';

    while($rows = mysql_fetch_assoc($sql)){
        echo 'Adresas: ' . $rows[$path] . '</br>';
    }
mysql_-connect(“localhost”、“root”和“”);
mysql_select_db(“TEMP”);
$sql=mysql_查询(“按id ASC从电视订单中选择*);
$id='id';
$path='path';
while($rows=mysql\u fetch\u assoc($sql)){
回显“地址:”.$rows[$path]。
; }
我有一个JavaScript旋转木马,如下所示:

<div class="w3-content w3-section" style="max-width:500px">
  <img class="mySlides" src="images/Chrysanthemum.jpg" style="width:100%">
  <img class="mySlides" src="images/Desert.jpg" style="width:100%">
  <img class="mySlides" src="images/Hydrangeas.jpg" style="width:100%">
  <img class="mySlides" src="images/Jellyfish.jpg" style="width:100%">
  <img class="mySlides" src="images/Koala.jpg" style="width:100%">
</div>


<script>
var myIndex = 0;
carousel();

function carousel() {
    var i;
    var x = document.getElementsByClassName("mySlides");
    for (i = 0; i < x.length; i++) {
       x[i].style.display = "none";  
    }
    myIndex++;
    if (myIndex > x.length) {myIndex = 1}    
    x[myIndex-1].style.display = "block";  
    setTimeout(carousel, 5000); // Change image every 2 seconds
}
</script>

var-myIndex=0;
转盘();
函数旋转木马(){
var i;
var x=document.getElementsByClassName(“mySlides”);
对于(i=0;ix.length){myIndex=1}
x[myIndex-1].style.display=“block”;
setTimeout(carousel,5000);//每2秒更改一次图像
}

正如您所看到的,它使用了来自div的硬编码图像,而我希望使用从数据库中获得的链接。我该怎么做呢?

您可以根据需要打开和关闭php标记。关闭将输出数据,就像它是html一样,打开将以php的形式执行代码。类似的内容将为您填充列表。在这种情况下,不需要为javascript提供php数据。相反,您需要通过php输出html

<div class="w3-content w3-section" style="max-width:500px">
<?php
    $rows = getRowsFromDB();
    foreach($rows as $row)
    {
        ?><img class="mySlides" src="<?php echo $row[$path];?>" style="width:100%"><?php
    }
?>
</div>

“style=“width:100%”
下面的代码可能对您有所帮助。 请在$row变量中输入u r列名

<?php
while($rows = mysql_fetch_assoc($sql)){
?>
<img class="mySlides" src="images/<?php echo $rows['get_a_column_name'];?>" style="width:100%">
<?php
}
?>

“style=“width:100%”

首先,如果您的HTML文档已通过http://协议加载,浏览器将不会通过file://协议加载任何内容。原因是Sequerity(不确定是否允许任何网页读取本地磁盘内容,对吗?)

当浏览器请求您的页面时,PHP将在服务器端执行,并生成浏览器得到的内容作为响应。此内容也可能包含javascript,并且在收到响应时将在浏览器中执行。我认为,您需要的最简单的PHP页面如下所示:

<?php
    // we'll store the list here
    $urls = [];

    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Execute the query
    $result = $conn->query("SELECT path FROM tv ORDER BY id ASC");
    // Fetch all selected rows one by one
    while($row = $result->fetch_assoc()) {
        $urls[] = $row["path"];    
    }
    $conn->close();
?>
<div class="w3-content w3-section" style="max-width:500px">
    <?php foreach ($urls as $url): ?>
        <img class="mySlides" src="<?=$url?>" style="width:100%">
    <?php endforeach; ?>
</div>

。不要使用不安全且不推荐使用的
mysql.*
函数。改用Mysqli或PDO。当我尝试使用它时,我遇到了一些错误。关于否决票,我不知道,很明显,这个问题本身对这么多程序员来说是不好的,所以它被否决了too@darklup,答案是正确的。如果您希望复制粘贴解决方案按原样工作,请使用短语“我不会试图理解您的答案,我只会复制您的代码片段并将其粘贴到我的代码中。”更新您的问题。当然,您会得到一个错误,因为我确定您没有实现
getRowsFromDB()
,对吗?正是这样。不是我不想理解,而是我不想理解。我真的不习惯php和js,所以我几乎不知道它是做什么的。我想它给了我一个类“mySlides”,让我从db得到的一切,所以它应该在我的旋转木马中工作?我从来没有说过你的答案是错误的,如果我不知道怎么做,我就无法检查它是否真的是正确的。@darklup好吧,每个人都有一个起点;)记住在你的头脑中要把客户机和服务器分开。PHP在服务器上运行。HTML/CSS/JS等在客户端上“运行”。PHP生成内容(任何内容,不仅仅是HTML),wire另一端的浏览器获取并解释。。。幸运的是,我不是来为人们编写应用程序的,我给出了一个示例,演示了如何使用php输出html代码,这正是OP遇到的问题。DB代码很琐碎,如果这就是他遇到的问题,那就另外问一个问题;分手并给我带来了一些错误,所以我尝试使用$URL=“”;相反,它是有效的。正如我在其他评论中所说,我对这一点非常陌生,几乎不知道从哪里开始,但当我得到代码使用时,我真的会尽我最大的努力来通读并理解它。谢谢你的帮助。哦,顺便说一句,我认为mysqli比mysql更安全?我在其他评论中看到有人说我应该使用它,但没有提到如何使用它,我也非常感谢您提供的这部分知识
是一种简短的语法,如果您的PHP版本早于5.4,则会失败。您可以通过完整语法创建数组,而不是
$url=array()有关mysql API的更多信息,请参阅手册,您在代码片段中使用的扩展因以下几个原因被弃用。阅读手册以获取有关如何使用mysql推荐API的更多信息我的示例使用mysqli。您可能想阅读更多关于
mysqli
mysqli\u result
类的信息,以获得如何在php中使用mysql的灵感。