2011-01-15 25 views
0

私はgitterポップアップシステムを使用するように私のサイトを設定しました。このようなjavascriptの外観:phpの配列からjavascriptを構築

$(document).ready(function(){ 
    setTimeout(function() { 
     $.gritter.add({ 
      title: 'Welcome!', 
      text: 'This appears to be your first time playing. Blablabla', 
      time: '25000' 
     }); 
    }, 500);       
    setTimeout(function() { 
     $.gritter.add({ 
      title: 'Walkthrough', 
      text: 'A walkthrough was setup ...', 
      time: '' 
     }); 
    }, 30000);   
    setTimeout(function() {       
     $.gritter.add({ 
      title: 'You got mail', 
      text: 'You have received a message from x ', 
      time: '' 
     }); 
    }, 36000); 

これは3つのポップアップの例です。 (彼らは空でないでない場合)、このアレイを通じ

$popup_title[0] = "Welcome!"; 
    $popup_text[0] = "This appears to be ..."); 
    $popup_time[0] = 25000; 

     $popup_title[1] = "Walkthrough"; 
     $popup_text[1] = "A basic blabla ..."); 
     $popup_time[1] = ""; 

、ループや配列に基づいてJavaScriptを構築:私がやりたいことは、このような配列を持っています。

答えて

2

何かが複数のアレイを使用すると、ネストされた配列を使用してみてください、そして正確にJavaScriptであなたの出力をエスケープするようにしてください少し面倒です

<?php 
$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; 
} 
?> 
<script type="text/javascript"> 
$(document).ready(function(){ 
    <?php foreach ($popups as $popup): ?> 
    setTimeout(function() { 
     $.gritter.add(<?php echo json_encode($popup);?>); 
    } 
    <?php endforeach; ?> 
} 
</script> 
1

PHPで作成されたJavaScriptコードをエコーアウトします。このような

0

仕事をする必要があります(私はそう下記やっていませんよ明確にするために)。

$popups = array(
    array('title' => 'First Title', 'text' => 'First Text', 'time' => 25000), 
    array('title' => 'Second Title', 'text' => 'Second Text', 'time' => 2000), 
); 
echo "<script>"; 
foreach($popups as $idx=>$popup) { 
    echo "setTimeout(function() { $.gritter.add({" 
     ."title: '{$popup['title']}'," 
     ."text: '{$popup['text']}'," 
     ."time: ''" 
    ."}); }, {$popup['time']}";  
} 
echo "</script>";