2010-01-24 7 views
1

J'ai suivi un tutorial sur la création d'un sélecteur de style avec PHP et jQuery, maintenant dans le tutoriel, la fonction PHP utilise get data, qui n'est pas disponible dans le codeigniter, j'espérais que quelqu'un serait capable de aidez-moi à ranger ma tentative désolé?Codeigniter et jQuery css switcher

Ma fonction PHP

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

Mon HTML et jquery appel

<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> 

Le plugin 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(); 

}

En cliquant sur le lien pour changer la feuille de style I obtenir ce e rror rturned via Firebug,

Une erreur est survenue

L'URI a soumis refusé caractères.

l'URL qui est envoyé est,

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

cet exemple est moi cliquant sur le choix vert.

Répondre

0

essayez de supprimer + partie de » & js de:

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

dans le plugin jQuery.

+0

merci, qui s'est débarrassé de mon erreur mais la variable de données est vide, savez-vous pourquoi ce serait? – Udders

+0

voir l'onglet net/xhr dans firebug pour voir ce qui est retourné en appelant l'URL. Peut-être que vous obtenez le mauvais segment. je changerai funcion pour "function setBackground ($ style) {" et enlèverai le $ style par segment. – parserr

1

Vous n'appelez pas la fonction setBackground() dans jquery.

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

Vous devez ajouter l'identifiant rouge et bleu dans un tag. Vous devez l'appeler quelque chose comme ça.

.fadeIn(500,function(){ 
var color=$('.color').attr('id'); 
$.post('yourphpclass/setBackground/'+color, ... 
...