2009-06-11 2 views
0

Je suis nouveau sur CakePhp et JQuery. J'obtiens une erreur lors de l'utilisation du code cakephp dans mon JQuery.Comment utiliser les variables PHP en tant que valeurs pour la balise <script> lors du rendu du code jQuery dans ma vue CakePHP?

Mon code

<script type="text/javascript"> 
    $(document).ready(function(){ 
    var attributeid;var fieldname; 
    $("#"+<?=$r['Attribute']['id'];?>).change(function() { 

    fieldname=<?=$r['Attribute']['label'];?>; 
       alert(fieldname);//this show me that undefined 
      attributeid=<?=$r['Attribute']['id'];?>; 
      alert(attributeid);//But this works 

    });//attribute change 
});//ready function 

si je répétai ($r['Attribute']['label'];) cette valeur est à venir dans mon <?php ?>. Mais pas dans mon JQuery.

Note:

attributeid=<?=$r['Attribute']['id'];?>; 
alert(attributeid);//But this works 


Error: 
Name is not defined 
fieldname=name; 
alert(fieldname); 
+0

Pouvez-vous voir la source du site après l'avoir générée et coller dans ce qui apparaît là-bas? – tschaible

Répondre

10

Vous ne pensez pas comment cela se traduit sur une fois que les variables sont résonnaient.

Si vous avez une $x variable avec le contenu "test", en faisant ceci:

var x = <?=$myvar?>; 

généreront:

var x = test; 

Ce n'est pas valable (sauf si test est une variable) parce que vous avez besoin de cotations pour en faire une chaîne:

var x = "<?=$myvar?>"; 

Quels sont les résultats alors en vigueur:

var x = "test"; 

La raison pour laquelle il travaille avec l'autre variable est parce que vous faisant écho à une carte d'identité, qui est un entier:

var x = <?=$myid?>; 

se traduirait par:

var x = 5; 

Ce qui est parfaitement valide. Ceci étant dit, vous devriez mettre tout ce que vous voulez envoyer sur Javascript dans un tableau et appeler le json_encode pour imprimer facilement et en toute sécurité les valeurs. Sans cela, vous devez vous soucier de l'échappement des guillemets dans la chaîne et ainsi de suite.