2009-06-22 8 views
0

Possible en double:
How do I use PHP variables as values for the <script> tag when rendering jQuery code in my CakePHP view?code php dans jquery

Dans CakePHP, la valeur passée en paramètre l'URL peut être obtenue par l'attribut contrôleur

  <?php $userid= $this->params['pass'][0];?> 

Je veux utiliser $ userid dans le code jQuery.

$("#displayPanel #saveForm").live("click", function(){ 

      document.location = 'http://localhost/cake_1_2/forms/homepage'; 

});//Click on SaveForm 

Supposons que si l'ID utilisateur est 12, j'ai besoin document.location être 'http://localhost/cake_1_2/forms/homepage/12'.

Comment utiliser la variable php dans jQuery?

Répondre

5

Pour plus de lisibilité, que diriez-vous:

<?php $userid= $this->params['pass'][0];?> 
var userId = '<?=$userid?>'; 
$("#displayPanel #saveForm").live("click", function(){ 
    document.location = 'http://localhost/cake_1_2/forms/homepage/' + userId; 
}); 
+0

où J'ai ajouté le code params ['passe'] [0];?>? – Angeline

+0

Voir ma modification. Vous avez juste besoin d'inclure quelque part avant de l'utiliser – karim79

+0

merci .. J'ai la réponse – Angeline

1

Vous aurez besoin de sortie de la variable dans la source JavaScript:

$("#displayPanel #saveForm").live("click", function(){ 
      document.location = 'http://localhost/cake_1_2/forms/homepage/<?=$userid?>'; 
});//Click on SaveForm 

Notez le <?=$userid?>. Si le raccourci est désactivé sur votre serveur, utilisez <?php echo $userid; ?>.

+0

où ne i ajouter le code params [ 'pass'] [0] ?;?>? – Angeline

+0

Vous ajouteriez ce code quelque part plus tôt dans votre script PHP. Notez que je suppose que le JavaScript ci-dessus se trouve déjà dans un script PHP, parce que PHP est exécuté sur le serveur et que vous devez donc modifier le JavaScript dans un script PHP. – Blixt

+0

C'est en fait un fichier .ctp, j'ai juste les fonctions écrites en jQuery et le code html pour la présentation. Y at-il un moyen dans jquery pour obtenir la valeur transmise dans l'URL? – Angeline

0

Outre les approches suggérées ci-dessus, vous pouvez aussi:

  1. Utilisez le construit en CakePHP aide Javascript pour attacher les pièces PHP et JS mieux ensemble (meilleure séparation de code et aucune confusion de langage de code). Jetez un oeil ici: http://book.cakephp.org/view/207/Javascript

  2. Créez un champ de saisie caché dans le code HTML avec la valeur transmise que vous pouvez lire dans jQuery. Cela peut sembler quelque peu complexe, mais peut être utile dans les cas où jQuery devrait également pouvoir modifier les valeurs ou être utilisé dans des formulaires de soumission.

  3. Faites en sorte que les contrôleurs CakePHP soient responsables de la lecture et de l'utilisation de l'ID utilisateur de la JS. Cela dépend de votre cas d'utilisation spécifique, mais au lieu de passer le paramètre à la nouvelle page, récupérez simplement la valeur du contrôleur que vous appelez (impossible si l'ID utilisateur n'est pas toujours le même ou ne peut pas être prédit passivement).