php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.02.2011, 19:03  
Neuer Benutzer
 
Registriert seit: 15.01.2011
Beiträge: 17
PHP-Kenntnisse:
Anfänger
thombhitz befindet sich auf einem aufstrebenden Ast
thombhitz eine Nachricht über MSN schicken
Standard [Erledigt] Wie parse ich JavaScript in einer echo-Ausgabe??

Ich bin dabei, einen JavaScript ImageSlider in meine Seite einzubinden. Der Head der Seite wird per PHP echo ausgegeben. Nun habe ich folgenden Code, wo ich nicht weiss, wie ich hier den String korrekt aufbauen muss, damit das ganze auch noch geparst wird:

Code:
echo'
<script type="text/javascript">
  $(document).ready(function(){
    $('#slider1').bxSlider();
  });
</script>'
habt ihr eine Idee? (ich hab schon über 2 stunden drangesessen - leider erfolglos )
thombhitz ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 08.02.2011, 19:15  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Benutze doch die Syntaxhighlighting-Funktion deines Editors, dann siehst du es. Dieses Forum hat übrigens auch eine.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Alt 08.02.2011, 19:36  
Neuer Benutzer
 
Registriert seit: 15.01.2011
Beiträge: 17
PHP-Kenntnisse:
Anfänger
thombhitz befindet sich auf einem aufstrebenden Ast
thombhitz eine Nachricht über MSN schicken
Standard

Besten Dank für die hilfreiche Antwort. Syntaxhighlighting habe ich bereits aktiviert.

Für den Fall, dass noch jemand vor einer ähnlichen Frage stehen sollte; hier die Lösung:

Statt
PHP-Code:
echo'
<script type="text/javascript">
  $(document).ready(function(){
    $('
#slider1').bxSlider();
  
});
</script>
Einfach
PHP-Code:
echo'
<script type="text/javascript">
  $(document).ready(function(){
    $(\'#slider1\').bxSlider();
  });
</script>' 
Die Anführungsstriche inerhalb des JavaScript Codes mit einem Backslash maskieren...

Kaum macht man's richtig - funktioniert es auch
thombhitz ist offline   Mit Zitat antworten
Alt 08.02.2011, 20:22  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Ansonsten lohnt sich auch ein Blick ins Manual: http://de3.php.net/manual/de/language.types.string.php
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Alt 08.02.2011, 20:49  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.266
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Beende doch einfach das Parsen von PHP:
PHP-Code:
<?php
// PHP 
?>
<script type="text/javascript">
  $(document).ready(function(){
    $('#slider1').bxSlider();
  });
</script>
<?php
// weiter gehts
oder schau dir mal die Heredoc-Syntax an:
PHP-Code:
echo <<<HTML
<script type="text/javascript">
  $(document).ready(function(){
    $('#slider1').bxSlider();
  });
</script>

HTML; 
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 08.02.2011, 21:46  
Neuer Benutzer
 
Registriert seit: 15.01.2011
Beiträge: 17
PHP-Kenntnisse:
Anfänger
thombhitz befindet sich auf einem aufstrebenden Ast
thombhitz eine Nachricht über MSN schicken
Standard

Vielen Dank für die Antworten! Einmal mehr führt anscheinend nicht nur ein Weg nach Rom.

Damit Ihr Euch ein besseres Bild über die Situation machen könnt, hier ein grösserer Abschnitt aus dem Code (es handelt sich dabei um ein SMF Forum / Portal mit TinyPortal):

PHP-Code:
// The main sub template above the content.
function template_main_above()
{
    global 
$context$settings$options$scripturl$txt$modSettings;

    
// Show right to left and the character set for ease of translating.
    
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"'
$context['right_to_left'] ? ' dir="rtl"' '''><head>
    <meta http-equiv="Content-Type" content="text/html; charset='
$context['character_set'], '" />
    <meta name="description" content="'
$context['page_title'], '" />', empty($context['robot_no_index']) ? '' '
    <meta name="robots" content="noindex" />'
'
    <meta name="keywords" content="PHP, MySQL, bulletin, board, free, open, source, smf, simple, machines, forum" />
    <script language="JavaScript" type="text/javascript" src="'
$settings['default_theme_url'], '/script.js?fin11"></script>
    <script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
        var smf_theme_url = "'
$settings['theme_url'], '";
        var smf_images_url = "'
$settings['images_url'], '";
        var smf_scripturl = "'
$scripturl'";
        var smf_iso_case_folding = '
$context['server']['iso_case_folding'] ? 'true' 'false'';
        var smf_charset = "'
$context['character_set'], '";
    // ]]></script>
    
    <!-- BX Slider -->
    <link rel="stylesheet" type="text/css" href="bxslider/bx_styles/bx_styles.css" />
    <script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
    <script src="bxslider/jquery.bxSlider.min.js" type="text/javascript"></script>

    <script type="text/javascript">
    $(document).ready(function(){
        $(\'#slider1\').bxSlider({
            mode: \'fade\',
            controls: false,
            speed: 1000,
            pager: false,
            auto: true,
            pause: 10000,
        });
    });
    </script>
    <!-- END BX Slider -->
    
    <title>'
$context['page_title'], '</title>'
Wie Ihr seht, wird der gesamte Head Bereich mit PHP echo ausgegeben. Ich habe beide Lösungen testweise probiert, hat aber keine von beiden funktioniert. Um das Parsen zu beenden, muss ich ja erst echo mit einem ' abschliessen. Heredoc hat auch nicht auf Anhieb funktioniert, werde mich aber mal genauer über diese Syntax informieren.

Wie bereits weiter oben erwähnt, habe ich die ' vom JavaScript einfach "escaped"...läuft einwandfrei.
thombhitz ist offline   Mit Zitat antworten
Alt 08.02.2011, 21:49  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ganz schön häßlich. Vor allem solche Stellen sind echt übel und fehleranfällig:

PHP-Code:
' … ml"'$context['right_to_left'] ? ' dir="rtl"' '''><..' 
Wenn Du da aus Versehen einen Punkt notierst hast Du eine schöne lange Suche vor Dir.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 08.02.2011, 22:02  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.266
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Mit Templating hat das aber ziemlich wenig zu tun ... das sieht ganz ganz grässlich aus. Pflück das doch mal anständig auseinander in dem du eine Template-Datei (nicht Funktion) benutzt und das global entfernst. Das wäre mal ein Anfang.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Grosses Formular mit case trennen? tüdelü PHP Tipps 2010 21 26.08.2010 17:48
$vars nach Zeit aus DB ändern ? Overload PHP Tipps 2010 11 16.06.2010 07:12
[Erledigt] upload mit datenbank incorrect PHP Tipps 2010 17 06.06.2010 11:13
Ausgabe erfolgt nicht Extremefall PHP Tipps 2009 17 17.12.2009 19:51
Link mit ID in Echo einbinden Mitch26 PHP Tipps 2009 4 06.08.2009 17:02
eine Suche definieren Tyrra PHP Tipps 2009 14 10.07.2009 09:39
[Erledigt] Popup mit Kalender variable gestalten Wortak JavaScript, Ajax und mehr 0 10.05.2009 12:43
Uploadproblem tobitobi PHP Tipps 2009 10 12.04.2009 12:39
[Erledigt] Einzelnen DB-Eintrag über ID anzeigen Knutschi PHP Tipps 2009 6 26.03.2009 09:56
Zufalls Bild! coptersimde PHP Tipps 2009 24 02.03.2009 17:57
JAVASCRIPT "document.write" mit ECHO <<< Formular ausgeben mixer PHP Tipps 2009 4 12.02.2009 21:19
Textarea und &amp;gt; PHP-Fortgeschrittene 9 07.02.2006 00:34
Problem mit While-Schleife PHP Tipps 2007 5 27.12.2005 20:02
Datenbankergebnis in Array und per Index darauf zugreifen PHP Tipps 2004 7 30.07.2004 18:39
lange echo ausgabe PHP Tipps 2004 13 30.07.2004 16:05

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
javascript echo, echo javascript, javascript ausgabe, javascript in echo, echo in javascript, echo für javascript, dir=\rtl\ bxslider, echo \<script type=\text/javascript, javascript php echo, bxslider dir=\rtl\, javascript parse, echo \javascript:, javascript:document echo, javasript echo, bxslider rtl, syntaxfehler echo \<script language=\javascript\ type=\text/javascript\>\;, bxslider from rtl, javascript php parsen, php echo mit javascript, javascript code mit echo ausgeben

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:14 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum