Façons de passer de php publier des données sur javascript
Alors je me demandais, si j'ai un simple formulaire php qui affiche les informations d'une variable, comment puis-je passer que posté variable javascript et être capable de manipuler les données? Le seul moyen que j'ai trouvé est d'utiliser le javascript en ligne avec php, mais je pense que cela doit être un nettoyant et une façon plus élégante de le faire où les variables ne se présentent pas de manière aussi flagrante dans le code source et sont gérés à l'externe.. Voici ce que je suis en train de jouer autour avec en ce moment:
<form action="index2.php" method="post">
<input name="sugar" class="form" type="text" value="" />
<input name="fat" class="form" type="text" value="" />
<input name="protein" class="form" type="text" value="" />
<input type="submit" value="submit" />
</form>
Qui est suivie par:
<?php
$sugar = $_POST['sugar'];
$fat = $_POST['fat'];
$protein = $_POST['protein'];
?>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
var sugar = "<?php echo $sugar ?>";
var fat = "<?php echo $fat ?>";
var protein = "<?php echo $protein ?>";
</script>
<script src="test.js" type="text/javascript"></script>
</head>
Quelqu'un aurait-il des suggestions pour des solutions de rechange je pourrais suivre? Je n'ai pas été à l'aide de javascript pour trop long donc il serait bon de savoir que mes options lorsque vous traitez avec une telle situation.
- N'oubliez pas de leur échapper.
- Qu'entendez-vous par "manipulés de l'extérieur"? Vous souhaitez créer un supplément de fichier de script pour chaque demande? Inline scripts sont juste très bien de cette tâche.
- Je vais le faire. C'est juste un test, je suis en cours d'exécution.
- Pouvez-vous expliquer pourquoi vous avez besoin pour expédier le
$POST
valeurs de JavaScript? - Pour cette expérience, je suis en cours d'exécution, quand j'ai saisissez un nombre dans le sucre, en gras et en protéines des boîtes, ils génèrent un compteur graphique qui montre comment ces valeurs correspondent à des apports quotidiens recommandés en. En définitive, si j'ai continué à travailler sur cela, il faudrait envoyer le post de données à une base de données, puis de générer l'apport mètres à partir des données extraites d'une base de données de tableau (ce qui je pense aurait également besoin d'une solution similaire).
Vous devez vous connecter pour publier un commentaire.
La meilleure façon de le faire serait tout simplement d'envoyer un objet Javascript contenant toutes les données que vous avez envoyé. Ceci peut être réalisé facilement par JSON-encodage
$_POST
:Vous pouvez ensuite accéder, par exemple,
data.fat
si vous avez envoyé unfat
de la valeur à votre requête POST.json_encode
fait le travail dont vous avez besoin.Sans l'aide de _GET ainsi et de stocker les variables dans l'URL que vous avez la meilleure solution pour vos besoins à l'heure actuelle.
Ces variables devront être imprimés et visible quelque part si vous voulez les obtenir à votre JavaScript.
JSON-encodage et de les imprimer afin qu'ils soient enregistrés dans une variable JavaScript est ce que j'ai toujours été à l'aide de:
S'affichera dans votre code HTML:
Et de cette façon vous pouvez passer quelle que soit la variable que vous souhaitez, cela peut être une chaîne, un nombre, un tableau ou même un "tableau associatif".
J'ai l'impression que la meilleure façon de passer des variables php à javascript variable est à json_encode en premier. Si vous êtes de passage à un tableau php à javascript, vous ne pouvez pas simple de dire
vous devriez faire comme les suivantes.
Vous pouvez écrire votre vars dans les entrées, puis atteindre ces entrées avec javascript
De cette façon, votre javascript peut résider dans un fichier statique.
vous pourrait essayer d'envoyer vos variables avec GET au lieu de POST, et puis vous pouvez accéder directement à partir de javascript comme ceci: http://javascript.about.com/library/blqs1.htm
Il n'existe aucun moyen pour accéder à des variables POST à partir de javascript, pour autant que je sais. Vous devez utiliser quelque chose comme que vous faites