Frage zur richtigen Syntax

Jan-Frederik Stieler

Monsterator
Moderator
Hallo,

PHP:
//rs Params
$rs_selektor         = $params->get('rs_selektor');
$rs_auto           = $params->get('rs_auto');
$rs_speed            = $params->get('rs_speed');
$rs_timeout          = $params->get('rs_timeout');
$rs_pager            = $params->get('rs_pager');
$rs_nav            = $params->get('rs_nav');
$rs_random            = $params->get('rs_random');
$rs_pause            = $params->get('rs_pause');
$rs_pauseControls        = $params->get('rs_pausecontrols');
$rs_prevText          = $params->get('rs_prevtext');
$rs_nextText          = $params->get('rs_nexttext');
$rs_maxWidth          = $params->get('rs_maxwidth');
$rs_navContainer        = $params->get('rs_navcontainer');
$rs_manualControls        = $params->get('rs_manualcontrols');
$rs_namespace          = $params->get('rs_namespace');
$rs_before           = $params->get('rs_before');
$rs_after           = $params->get('rs_after');

$document->addScriptDeclaration('
    jQuery(function() {
        jQuery(' . $rs_selektor . $moduleclass_sfx . ').responsiveSlides({
            auto: '.$rs_auto.',                            // Boolean: Animate automatically, true or false
            speed: '.$rs_speed.',                        // Integer: Speed of the transition, in milliseconds
            timeout: '.$rs_timeout.',                    // Integer: Time between slide transitions, in milliseconds
            pager: '.$rs_pager.',                        // Boolean: Show pager, true or false
            nav: '.$rs_nav.',                            // Boolean: Show navigation, true or false
            random: '.$rs_random.',                        // Boolean: Randomize the order of the slides, true or false
            pause: '.$rs_pause.',                        // Boolean: Pause on hover, true or false
            pauseControls: '.$rs_pauseControls.',        // Boolean: Pause when hovering controls, true or false
            prevText: "'.$rs_prevText.'",                // String: Text for the "previous" button
            nextText: "'.$rs_nextText.'",                // String: Text for the "next" button
            maxwidth: "'.$rs_maxWidth.'",                // Integer: Max-width of the slideshow, in pixels
            navContainer: "'.$rs_navContainer.'",        // Selector: Where controls should be appended to, default is after the ul
            manualControls: "'.$rs_manualControls.'",    // Selector: Declare custom pager navigation
            namespace: "'.$rs_namespace.'",                // String: Change the default namespace used
            before: function(){'.$rs_before.'},            // Function: Before callback
            after: function(){'.$rs_after.'}            // Function: After callback
        });
    });
');

Bei diesem Script frage ich mich wie ich den die agnzen Variablen innerhalb des Javascriptes richtig ausgeführt bekomme. Muss ich da noch ein echo hinzufügen oder wie schreibe ich das richtig.
Sorry für die richtig dumme Frage aber ich bekomm das irgendwie nciht zu laufen.

Grüße
 
Ich würde es spontan so lösen:
PHP:
$values = array(
    'auto'           => $rs_auto,
    'speed'          => $rs_speed,
    'timeout'        => $rs_timeout,
    'pager'          => $rs_pager,
    'nav'            => $rs_nav,
    'random'         => $rs_random,
    'pause'          => $rs_pause,
    'pauseControls'  => $rs_pauseControls,
    'prevText'       => $rs_prevText,
    'nextText'       => $rs_nextText,
    'maxWidth'       => $rs_maxWidth,
    'navContainer'   => $rs_navContainer,
    'manualControls' => $rs_manualControls,
    'namespace'      => $rs_namespace
);

$encoded  = json_encode( $values );
$encoded  = substr( $encoded, 0, strlen( $encoded ) - 1 );

$encoded .= ',before: function(){' . $rs_before . '},';
$encoded .= 'after: function(){' . $rs_after . '}}';
 
Wenn auch kein HTML-Code generiert wird (ich meine das wörtlich, also Quelltextansicht im Browser zum Beispiel), schau mal ins Error-Log des Servers. Dann hast du vermutlich einen Syntaxfehler oder dergleichen in deinem PHP-Code.
 
Okay ich hab das nochmal eingesetzt und es hat nicht gestimmt das nichts gerendert wird.
Was nicht gerendert wird ist der jQuery Teil. Normalerweise müsste durch $document->addScriptDeclaration der jQuery Teil im Header an passender Stelle gerendert werden aber der fehlt total.
Die Frage ist doch ob ich bei meinem Script einen Syntaxfehler drinnen habe wie ich die PHP-Variablen innerhalb des jQueryparts, welcher hier ja ein einfacher String ist, aufrufe?

Grüße
 
Ja, eine wahrscheinliche Ursache dafür, dass nichts passiert, ist eben, dass du JavaScript-Code generierst, der fehlerhaft ist und deshalb nicht (oder nicht wie erwartet) ausgeführt wird. Der sollte aber wahrscheinlich dennoch im HTML-Code auftauchen (und im Grunde auch zu Fehlerausgaben in der JS-Console des Browser führen, wenn du nicht zufällig zwei Fehler hast, die sich gegenseitig egalisieren). Wenn du den Code findest (und im Zweifel hier postest), lässt sich daran vermutlich ermitteln, wo genau das Problem liegt.
 
Hallo,
ich hab den Fehler gefunden.
jQuery(".' . $rs_selektor . $moduleclass_sfx . '").responsiveSlides({

Vielen Dank an euch.

Viele Grüße
 
Zurück