2011-04-01 4 views
-1

J'ai un élément dans mon bloc javascript dont je souhaite passer la valeur à php. Les variables sontYii: Passer une variable Javascript à PHP

$ ('# datefirst'). Val()

et

$ ('# datelast'). Val()

Mon code est (devrait donner une idée de ce dont je parle)

<?php $datefirst = ?>$('#datefirst').val(); 
<?php $datelast = ?>$('#datelast').val(); 
window.location = "<?php echo CController::createAbsoluteUrl('export/motheradmission', 
array('datefirst'=>$datefirst,'datelast'=>$datelast)) ?>"; 

Des idées qui m'aideront à accomplir cet exploit?

+2

Veuillez regarder [côté serveur/côté client] (http://www.eggheadcafe.com/PrintSearchContent.asp?LINKID=569). –

Répondre

2

PHP s'exécute sur le serveur. Il génère (généralement) un document HTML (éventuellement avec JavaScript incorporé). Ceci est ensuite livré au client. À ce stade, le script PHP est terminé.

Le client obtient le document et exécute n'importe quel JavaScript. La seule façon de renvoyer des données au serveur consiste à émettre une nouvelle requête HTTP.

Vous voulez sans doute faire quelque chose comme:

window.location = "some.php?datefirst=" + encodeURIComponent(datefirst) + "&datelast=" + encodeURIComponent(datelast); 

... et traiter ensuite les données présentées dans some.php.

+0

Étant donné que le script d'origine redirigeait le navigateur vers une autre URL, Ajax ne ferait que compliquer les choses sans aucun bénéfice dans cette instance. – Quentin

0

Étant donné que vous utilisez ensuite window.location pour les faire rebondir sur une nouvelle page, pourquoi ne pas simplement continuer avec le javascript et ajouter les variables à la fin de l'URL à laquelle vous rebondissez? Tels que

Window.location = "<code>"+"?datefirst"+('#datefirst').val()+"&datelast="+('#datelast').val(); 
0

Vous ne pouvez pas affecter des valeurs js à php. Vous pouvez réaliser la redirection comme ceci.

var firstdate=$('#datefirst').val(); 
var lastdate=$('#datelast').val(); 
var url = "<?php echo CController::createAbsoluteUrl('export/motheradmission', 
array('datefirst'=>'#firstdate','datelast'=>'#lastdate')) ?>"; 
url = url.replace('#firstdate',firstdate); 
url = url.replace('#lastdate',lastdate); 
window.location.href=url; 
Questions connexes