2009-06-04 11 views
-1

Exemple de travail:javascript très simple échouant

Ceci est presque identique au code que j'utilise dans d'autres endroits sur ma page, mais échoue ici pour une raison quelconque.

<?php 
//$p = "test"; 
?> 

<script> 
alert('posts are firing? '); 
parent.document.getElementById('posts').innerHTML = "test"; 
</script> 

exemple défaut: (alerte fonctionne toujours)

<?php 
$p = "test of the var"; 
?> 

<script> 
alert('posts are firing? '); 
parent.document.getElementById('posts').innerHTML = '<?php $p; ?>'; 
</script> 
+0

Vous devriez utiliser 'json_encode' si possible. – Gumbo

Répondre

6

Essayez

'<?php echo $p; ?>'; 

ou

'<?= $p ?>'; 
+0

Rappelez-vous: Vous devez activer short_tags dans votre fichier php.ini pour que Nolte

+0

Oui, c'est pourquoi j'ai fourni les deux lignes :-) – NinethSense

2

101 Debugging: Commencer à vérifier toutes les valeurs variables.

alert(parent); 
alert(parent.document); 
alert(parent.document.getElementById('posts')); 

ainsi que la valeur rendue par: '<?php $p; ?>'

+0

Je l'ai retravaillé à la variable $ p. Merci. – ian

2

Assurez-vous que votre objet 'messages de (je suppose qu'il est DIV ou SPAN) se charge avant de le remplir en utilisant javascript.

+0

div est déjà chargé ... mais merci. – ian

1

Vous essayez de générer javascript avec php, j'utilise ici un simple écho:

<?php 

$p = "test of the var"; 

echo" 
<div id='posts'></div> 

<script type='text/javascript'> 
var posts = document.getElementById('posts'); 
posts.innerHTML = '$p'; 
</script> 
"; 

?> 

Notez le p $ et que le div est affiché avant le javascript!

0

Vous ne sortez pas les données de la variable, c'est pourquoi cela ne fonctionne pas. Vous devez echo ou imprimer la variable $ p.

0

Dans votre exemple, $ p est en cours d'évaluation et non imprimé.

Pour l'imprimer, vous devez utiliser imprimer, écho, ou la syntaxe < \ = $ p;?>. sans le \

Questions connexes