2011-08-10 6 views
0

Pourquoi ne puis-je pas utiliser un nombre calculé, à partir de php dans jQuery?Utiliser la variable PHP dans Javascript/jQuery

J'ai essayé ceci:

<div id="time"> 
    <? echo until();?> 
</div> 
var until = $("#time").html(); 

Et

var until = <? echo until();?>; 

Mais personne ne travaille D:

EDIT: Le nombre calculé sera 472541, et la fonction:

<? 
/** 
* @desc Time until tuesday 
* @param string Time format 
* @return string timestamp 
*/ 
function until($format = ""){ 
    $now = strtotime("now"); 
    $nextTuesday = strtotime("-1 hour next tuesday"); 
    $until = $nextTuesday - $now; 
    if(empty($format)){ 
     return $until; 
    }else{ 
     return date("$format",$until); 
    } 
} 

>

EDIT EDIT: Je ne sais pas ce que happend, mais il semble maintenant fonctionner: O: D Merci beaucoup, tout le monde: D

+0

S'il vous plaît mettre à jour votre réponse afin d'obtenir (doog) aide: Qu'est-ce qui se passe (ou devrait se produire) Quelle erreur (s) que vous obtenez? etc? – Veger

+1

Pouvez-vous poster jusqu'à la méthode et le code HTML généré? – Joe

+0

Avez-vous essayé d'examiner le code source résultant? – Chronial

Répondre

0

Avez-vous l'essayer dans un bloc de script , comme ceci:

<script type="text/javascript"> 
/* <![CDATA[ */ 

    var until = <?php echo until();?>; 
    alert(until); 

/* ]]> */ 
</script> 
+0

Oui, je ne voulais tout simplement pas l'écrire (Trop paresseux) – Mobilpadde

+0

et ce qui est imprimé au format HTML, si vous faites écho votre résultat jusqu'à() là-bas? – SunnyRed

+0

Ce serait 472541 – Mobilpadde

0

pouvez-vous essayer

<? $output =until(); echo $output?> 

var until = <? echo $output ?>; 
+0

-1 pour les tags ''. –

+4

+1 parce que c'est une raison stupide de voter à la baisse. –

0

Si vous voulez faire écho les résultats de la fonction jusqu'à ce que, la fonction woul Je dois effectivement retourner quelque chose. Ce qui suit fonctionnerait parfaitement.

function until() { 
    return '1'; 
} 

<script type="text/javascript"> 
    var until = <?php echo json_encode(until()); ?>; 
</script> 

Notez l'utilisation de json_encode(). Bien que ce ne soit pas nécessaire dans ce cas, car il sort juste un '1'. l'utilisation de json_encode en général est une bonne idée, car elle garantit que tout ce qui sort de PHP sera syntaxiquement valide Javascript. Il est très facile de générer du Javascript à la volée qui contient des erreurs de syntaxe, ce qui va tuer le reste de votre script immédiatement.

1

La façon dont je suis tirais des valeurs PHP à partir de quelque chose comme ça dans une variable est de faire un nouvel attribut dans la DIV, quelque chose comme

<div id="time" value="<?= until(); ?>"> 

</div> 

puis, en utilisant JQuery, je peux tirer la variable par dire

var until = $('#time').attr(value); 
+0

Non, n'a pas aidé D: – Mobilpadde

+0

et vous vous êtes assuré que la variable $ peut écho correctement en premier lieu? Je suppose que je voulais dire que $ variable est until(); Je vais modifier ce qui précède pour montrer cela – ntgCleaner

0

Pour commencer, vous ne devriez pas utiliser <?php ?> sténographie balises, il n'est pas recommandé. Et en second lieu, je ne peux pas tracer votre problème, vraiment.

http://codepad.viper-7.com/ufrfYR

Questions connexes