Codeigniter и JQuery CSS переключатель - PullRequest
1 голос
/ 24 января 2010

Я следовал учебнику по созданию переключателя стилей с помощью PHP и jQuery, теперь в учебнике функция PHP использует get data, которая недоступна в codeigniter, я надеялся, что кто-то сможет чтобы помочь мне привести в порядок мою жалкую попытку?

Моя функция PHP

    function setBackground() {
    $style = $this->uri->segment(3);
    setcookie("style", $style, time() + (60*60*24*30));
    echo $style;
}

Мой вызов HTML и jquery

<ul id="options">
    <li><a class="option" href="<?php echo base_url();?>welcome/setBackground/red">Red</a></li>
    <li><a class="option" href="<?php echo base_url();?>welcome/setBackground/green">Green</a></li>
</ul>
<script type="text/javascript">
$('a.option').styleSwitcher(); // calling the plugin
</script>

Плагин jQuery

jQuery.fn.styleSwitcher = function(){
$(this).click(function(){
    loadStyleSheet(this);
    return false;
});
function loadStyleSheet(obj) {
    $('body').append('<div id="overlay" />');
    $('body').css({height:'100%'});
    $('#overlay')
        .css({
            display: 'none',
            position: 'absolute',
            top:0,
            left: 0,
            width: '100%',
            height: '100%',
            zIndex: 1000,
            background: 'black url(img/loading.gif) no-repeat center'
        })
        .fadeIn(500,function(){
            $.get( obj.href+'&js',function(data){
            $('#stylesheet').attr('href','/media/css/' + data + '.css');

                cssDummy.check(function(){
                    $('#overlay').fadeOut(500,function(){
                        $(this).remove();
                    }); 
                });
            });
        });
}
var cssDummy = {
    init: function(){
        $('<div id="dummy-element" style="display:none" />').appendTo('body');
    },
    check: function(callback) {
        if ($('#dummy-element').width()==2) callback();
        else setTimeout(function(){cssDummy.check(callback)}, 200);
    }
}
cssDummy.init();

}

При нажатии на ссылку, чтобы изменить таблицу стилей, я получаю эту ошибку с помощью firebug,

Обнаружена ошибка

В указанном вами URI запрещены символы.

отправляемый URL,

http://mywebsite/index.php/welcome/setBackground/green&js

В этом примере я выбираю зеленый выбор.

Ответы [ 2 ]

1 голос
/ 24 января 2010

Вы не вызываете функцию setBackground () в jquery.

.fadeIn(500,function(){
        $.get( obj.href+'&js',function(data){

Вам нужно добавить id красный и синий в теге. Вы должны назвать это как-то так.

.fadeIn(500,function(){
var color=$('.color').attr('id');
$.post('yourphpclass/setBackground/'+color, ...
...
0 голосов
/ 24 января 2010

попробуйте удалить + '& js' деталь из:

...
$.get( obj.href+'&js',function(data){
...

в плагине jQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...