php - php中的foreach循环构造javascript

标签 php javascript arrays loops foreach

我将在 php 中构造一个弹出 javascript,如下所示:

$popup_title = array(); 
$popup_text = array(); 
$popup_time = array();
$popup_delay = array(); 

array_push($popup_title, T_gettext("Ready for ..."));
array_push($popup_text, "<a href=\"x.php\">".T_gettext("Click here to...")."</a>"); 
array_push($popup_time, 3000);  
array_push($popup_delay, 6000); 

这里我编写了 javascript 代码:

if(!empty($popup_title)){
//constuct javascript

$popups = array();
foreach ( $popup_title as $key => $title )
{
    $popups[$key] = new stdClass();
    $popups[$key]->title = $title;
}
foreach ( $popup_text as $key => $text )
{
    $popups[$key]->text = $text;
}
foreach ( $popup_time as $key => $time )
{
    $popups[$key]->time = $time; 
}
//print javascript
echo "
<script type=\"text/javascript\">
$(document).ready(function(){"; 
foreach ( $popups as $popup ):
echo "
    setTimeout(function() {
        $.gritter.add("; echo json_encode($popup); echo ");
    }, ".($popup_delay");"; // <---------Here I need to place popup_delay 
    endforeach;
echo "  
});
</script>"; 

这给出了这个 javascript 的例子:

<script type="text/javascript">
$(document).ready(function(){
    setTimeout(function() {
        $.gritter.add({"title":"Ready for..","text":"<a href=\"x.php\">Click here to...<\/a>","time":3000});
    }, 0);  
});
</script>

我不习惯foreach。 for 循环将是这样的: for($n=0; $n < count($popup_delay); $n++){ echo $popup_delay[$n]; } ,但是我如何循环 $popup_delay当我已经使用 json_encode($popup) 时,使用 foreach 值来自foreach ( $popups as $popup ):

最佳答案

您只需为数组使用一个键即可。因此,您可以像这样创建一个多维数组,而不是在 PHP 中创建多个数组:

$javascript_array = array();
$javascript_array[0]['title'] = "Ready for ...";
$javascript_array[0]['text'] = "Click here to...";
$javascript_array[0]['time'] = 3000;
$javascript_array[0]['delay'] = 6000;

您的数组将显示如下:

if ( !empty ( $javascript_array ) ) {
// dump in your <script> piece here
    foreach ( $javascript_array as $js_entry ) {
// put in your filler pieces here
        echo "Title: ".$js_entry['title'];
        echo "Text: ".$js_entry['text'];
        echo "Time: ".$js_entry['time'];
        echo "Delay: ".$js_entry['delay']; 
   } // end foreach
// closed </script> 
}

关于php - php中的foreach循环构造javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4724442/

相关文章:

php - HTTP_HOST 服务器变量是否始终被定义?

php - 3 个表之间的 Symfony Doctrine 关系

javascript - 为 d3.js 中的多个元素生成 clipPaths

javascript - 如何通过现有数组标签明智地收集/制作新数组?

php - Wordpress woocommerce 第二和第三产品图像模糊

php - 如何在 Laravel 中从文件夹和数据库中删除文件或图像?

javascript - 如何将 onFormSubmit(e) 和 onEdit(e) 嵌套在一起

javascript - 解析带有子元素的 json 对象出错

ios - UITableViewCell 在某些 indexPath.rows 的 Swift 2 彩色背景

javascript - 通过键删除嵌套结构中的对象