Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP将值循环到javascript数组中_Javascript_Php - Fatal编程技术网

PHP将值循环到javascript数组中

PHP将值循环到javascript数组中,javascript,php,Javascript,Php,您好,我使用jquery构建了一个手动滑块,并将图像的位置放在一个数组中,但现在我想从数据库加载图像,并将它们循环到一个javascript数组。如何做到这一点 var items=[“url(images/banner_1.jpg)”,“蓝色”、“黑色”、“绿色”]; 这里有一个简单的方法。它没有您提到的任何外部依赖项 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"&g

您好,我使用jquery构建了一个手动滑块,并将图像的位置放在一个数组中,但现在我想从数据库加载图像,并将它们循环到一个javascript数组。如何做到这一点


var items=[“url(images/banner_1.jpg)”,“蓝色”、“黑色”、“绿色”];

这里有一个简单的方法。它没有您提到的任何外部依赖项

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Use PHP in JavaScript</title>
</head>
<body>

  <?php
    // assuming your database call returns a valid array like this
    $things = array("banner_1.jpg", "banner_2.jpg", "banner_3.jpg", "banner_4.jpg");
    // the built-in `json_encode` will make JavaScript like it
    $things_json = json_encode($things);
  ?>

  <div class="etc">
    <!--this is were the database items will go-->
    <ul id="things"></ul>
  </div>

  <script>
    // echo out json-ified PHP directly into the script tag
    var things = <?php echo $things_json ?>;
    // loop through the json and append list items to our target element
    for(var i = 0; i < things.length; i++) {
        document.querySelector('body').innerHTML += '<li>'  + things[i] + '</li>';
    }
  </script>

</body>
</html>

一个简单得多的方法,无需在DOM中添加内容,而且由于您需要javascript数组:

您必须始终记住,PHP首先在服务器中执行,javascript随后在浏览器中执行。因此,您可以使用php创建(有效)javascript,如下所示:

<?php
echo '<script>var jsArray = [];';

while($fetch = $get->fetch_array(MYSQLI_ASSOC)){ // I took your line exactly as you wrote it
    echo 'jsArray.push("'. $fetch['field']  .'");'; //you change 'field' with whatever you need
}

echo '</script>';
?>
<script>
    var jsArray = [];
    jsArray.push("blue");
    jsArray.push("red");
    jsArray.push("yellow");
</script>

php脚本(javascript将执行的代码)的输出如下:

<?php
echo '<script>var jsArray = [];';

while($fetch = $get->fetch_array(MYSQLI_ASSOC)){ // I took your line exactly as you wrote it
    echo 'jsArray.push("'. $fetch['field']  .'");'; //you change 'field' with whatever you need
}

echo '</script>';
?>
<script>
    var jsArray = [];
    jsArray.push("blue");
    jsArray.push("red");
    jsArray.push("yellow");
</script>

var jsArray=[];
jsArray.push(“蓝色”);
jsArray.push(“红色”);
jsArray.push(“黄色”);

之后,您将能够访问jsArray。

图像本身在数据库中?是的,我通过我的后台发布它们。您可能需要创建一个端点来单独检索图像。您可以发布一些代码,以便我能够真正理解您的意思,我的意思是,从逻辑上说,我看不出这是怎么做到的。你必须做一些研究,但这里有一个起点:这正是我所需要的,是我所想的,但需要一个有效的例子来正确地做,谢谢!;)我很乐意帮忙!如果你这么认为,就投票吧,作为最佳答案我使用了你的例子,因为它更简单,我不能投票,因为我没有足够的声誉:(这只有一个问题,例如,当通过json传递一个目录“test/test/image.jpg”时,它会像这样返回“test\/test\/image.jpg”我如何解决这个问题呢?我用preg_389;解决了这个问题,但是我如何通过json编码传递2个变量,就像传递2个json编码一样,只有第一个显示数据我在答案的底部添加了更多关于处理多个PHP变量的信息。