2016-07-01 10 views
-2

Ich versuche Javascript-Code für die Seite in der Datenbank als Zeichenfolge zu speichern, so dass es leicht aus dem Administrationsbereich bearbeitet werden kann, anstatt Datei zu öffnen, bearbeiten und auf den Server hochladen. Das Problem ist, dass einige der jQuery-Snippets PHP-Variablen aus den Einstellungen von $ _GET-Variablen verwenden, um Teile der Site neu zu laden. Das aus der Datenbank abgerufene Javascript funktioniert zwar gut, hat aber keine Ahnung, wie man die PHP-Variable in den tatsächlichen Wert ersetzen kann. Der Code in der Datenbank wie folgt aussehen gespeichert, sondern Seite auf die Generierung ich möchte es $settings['countdown'] mit 2016-07-01 22:00php/javascript & string aus der Datenbank mit PHP und Javascript-Variablen

$("#clock").countdown("'.$settings['countdown'].'", function(event) { 
    $(this).html(event.strftime("%-w week%!w:s; %-d days %-H:%M:%S")); 
}); 

ersetzen Wie bin ich in der Lage, es zu machen? Vielen Dank.

Antwort

0

Bisher verwendete ich folgende Lösung und alles scheint gut zu funktionieren:

Speichern genannten jQuery Code in Datenbank als:

$(\"#clock\").countdown(\"{{settings.countdown}}\", function(event) { 
    $(this).html(event.strftime(\"%-w week%!w:s; %-d days %-H:%M:%S\")); 
}); 

und später machen es mit php wie folgt aus:

if($page['js'] != ''){ 
    preg_match_all('#\{{(.*?)\}}#', $page['js'], $match); 
    foreach($match[1] AS $k => $m){ 
     $m = explode('.', $match[1][$k]); 
     if(isset($m[1])){ 
      $match[1][$k] = ${$m[0]}[$m[1]]; 
     }else{ 
      $match[1][$k] = $$m[0]; 
     } 
     $page['js'] = str_replace($match[0][$k],$match[1][$k],$page['js']); 
    } 
    $jsfiles[] = ' 
    <script type = "text/javascript"> 
    '.$page['js'].' 
    </script>'; 
} 

Kann jemand dazu Feedback geben? Danke