将PHP选择转换为JavaScript数组进行操作

Turning PHP selection to JavaScript array for manipulation

本文关键字:数组 操作 JavaScript PHP 选择 转换      更新时间:2023-09-26

我想将这些图像从服务器添加到JavaScript数组中,这样我就可以使用它们了。

下面的示例应该提醒文件夹中的图像数量。目前有两个图像在那里,这个脚本提醒我两次,说我有数组的长度是一。很明显,我想要一个警报说两个。

<?php
    include("mysqlconnect.php");
    $select_query = "SELECT `ImagesPath` FROM `offerstbl` ORDER by `ImagesId` DESC";
    $sql = mysql_query($select_query) or die(mysql_error());   
    while($row = mysql_fetch_array($sql,MYSQL_BOTH)) {
?>
<script> var images = new Array("<?php echo $row["ImagesPath"]; ?>"); 
alert(images.length);
正如scrowler在评论中指出的那样,使用json_encode()。你现在所做的就是杀死你编码的任何东西。我可以保证。(如果你不相信我,只需询问Stack Overflow上的任何人。(

它可以简单地这样做:

$data = array();
while($row = mysql_fetch_array($sql,MYSQL_BOTH)){
    $data[] = $row['ImagesPath'];
}

看到我们如何将图像添加到上面的$data阵列中吗?现在我们可以简单地在循环下添加这个:

$images = json_encode($data);

这会给你一个看起来像这样的东西:

{'path/to/image', 'path/to/another/image'}

我强烈建议你不要像现在这样做,但为了回答你的问题,你的最终代码应该是这样的:

<?php
//....all the query stuff etc...
$data = array();
while($row = mysql_fetch_array($sql,MYSQL_BOTH)){
    $data[] = $row['ImagesPath'];
}
$images = json_encode($data);
?>
<script>var images = <?php echo $images; ?></script>
<?php 
include("mysqlconnect.php");
 $select_query = "SELECT `ImagesPath` FROM `offerstbl` ORDER by `ImagesId` DESC";
 $sql = mysql_query($select_query) or die(mysql_error());
 $rows = mysql_fetch_assoc($sql);
 echo "<script> var images = array();"
 for($i=0;$i<count($rows);$i++)
{
 $current_image = $rows[0];
echo "images.push($current_image)";
}
?>

此代码将使用for循环将所有images_path推送到images数组中。它将为更多的图像刷新长代码,但工作正常。如果你不想刷新一个长js文件,那么告诉我,我也会这样做。