Я использую jsPanel для создания плавающего окна ‘панели’ следующим образом:
$.jsPanel({
headerTitle: 'Some title',
content: '<p> Hello world! </p>'
})
Это прекрасно работает, но у меня возникают проблемы с тем, что я хочу, чтобы этот «контент» содержал данные PHP. Например:
$.jsPanel({
headerTitle: 'Some title',
content: '<?php echo "Hello world!"; ?>'
})
Это не работает. Итак, что я пробовал это:
$.jsPanel({
headerTitle: 'Some title',
contentAjax: {url: 'helloworld.php'}
})
Неудачно. Итак, после дальнейших поисков, я нашел что-то похожее:
$.jsPanel({
headerTitle: 'Some title',
load: {url: 'helloworld.php'}
})
… что тоже не сработало.
Так что я думаю, мои вопросы таковы —
Давайте начнем с самого простого рабочего примера, который использует option.contentAjax
$.jsPanel({
headerTitle: 'Some title',
contentAjax: 'test.php'
});
Теперь test.php (который обрабатывается на сервере) требуется для вывода чего-то полезного, чтобы добавить его в панель.
test.php:
<?php
echo "<p style='text-align:center;'>Lorem ipsum dolor ...</p>";
?>
Более подробный пример JavaScript был бы:
$.jsPanel({
headerTitle: 'Some title',
contentAjax: {
url: 'test.php',
done: function( data, textStatus, jqXHR, panel ) {
panel.content.append(data);
}
}
});
Всегда помните, что PHP-код работает на сервере.
Ваш последний пример кода не работает, потому что в jsPanel нет option.load. Но вы можете использовать jQuery.load () как:
$.jsPanel({
headerTitle: 'Some title',
callback: function() {
this.content.load('test.php');
}
});
или же:
$.jsPanel({
headerTitle: 'Some title',
content: function() {
$(this).load('test.php');
}
});
Надеюсь, я смогу немного помочь …
Других решений пока нет …