[RESOLU] comment récupérer une variable javascript pour la mettre dans une variable php?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] comment récupérer une variable javascript pour la mettre dans une variable php?

Re: comment récupérer une variable javascript pour la mettre dans une variable php?

par DigitalGeek » 02 nov. 2018, 13:52

bonjour, juste pour dire que j'ai trouvé la solution du problème ...

Code : Tout sélectionner

var visited = $("#visited").val();
en

Code : Tout sélectionner

var visited = $("#visited").text();
3 jours de prises de tête pour une connerie comme celle-là :)

merci pour votre aide en tout cas

Re: comment récupérer une variable javascript pour la mettre dans une variable php?

par DigitalGeek » 01 nov. 2018, 01:05

Alors je viens de trouver que je ne cherchais pas le bon element,
j'ai découvert que les elements qui s'affichent dans

Code : Tout sélectionner

<ul id="visited"></ul>
sont des balises <li>
(j'avance pas a pas ..)

ce qui fait

<ul id="visited">
<li>http://www.site1.com</li>
<li>http://www.site2.com</li>
<li>http://www.site3.com</li>
</ul>

je remet la partie du code html

Code : Tout sélectionner

<div id="content"> <div id="visited_container"> <h3>visited:</h3> <div id="disclaimer"></div> <ul id="visited"></ul> </div> <div id="not_visited_container"> <h3>site checked visited</h3> <ul id="not_visited"></ul> </div> </div>

re voici mon script ....
j'ai lu beaucoup d'exemples sur stackoverflow et autres et apparement si j'ai bien compris il est possible de sélectionner un element li a l'interieur d'une balise ul qui a l'id=visited

j'ai essayer ceci mais ca ne fonctionne toujours pas...

Code : Tout sélectionner

$("#visited li")


ca fait 2 jours que je retourne le code dans tout les sens...lol

Code : Tout sélectionner

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js "></script> <script> setTimeout(function() { $(document).ready(function(){ $('#content ul').ready(function(){ var visited = $("#visited li").val(); $.post('post_receiver.php', {visited:visited}, $(this).serialize(), function(data){ // show the response $('#visited').html(data); }) .fail(function() { // just in case posting your form failed alert( "Posting failed." ); }); // to prevent refreshing the whole page page return false; }); }); }, 5000); //timeout end </script>
comment doit je faire pour recuperer les <li> s'il vous plait

car pour l'instant avec ce code voici le output de la console

Code : Tout sélectionner

array(1) { ["visited"]=> string(1) "0" }
encore un grand merci , et desoler pour la pagaille ...

Re: comment récupérer une variable javascript pour la mettre dans une variable php?

par DigitalGeek » 31 oct. 2018, 18:45

off

Re: comment récupérer une variable javascript pour la mettre dans une variable php?

par DigitalGeek » 31 oct. 2018, 18:08

merci pour le var_dump @rthur ,
J'ai oublier de preciser que je ne vois pas de output dans les array de la ligne post_receiver.php sur la console, le fichier php est bien loader mais les paramètres ne sont pas passés

Code : Tout sélectionner

array(0) { }
par contre bizarrement , lorsque je remplace la ligne

Code : Tout sélectionner

$.post('post_receiver.php', {visited:visited,not_visited:not_visited}, $(this).serialize(), function(data){
par des paramètres "predefini"

Code : Tout sélectionner

$.post('post_receiver.php', { user_id: "143", username: "ninjazhai", website: "https://codeofaninja.com/" }, function(data){
les paramètres sont bien passés

Code : Tout sélectionner

array(3) { ["user_id"]=> string(3) "143" ["username"]=> string(9) "ninjazhai" ["website"]=> string(25) "https://codeofaninja.com/" }

j'en déduis que les paramètres ne sont pas lu bien que j'ai renseigner <div id="visited"> comme endroit a extraire

Re: comment récupérer une variable javascript pour la mettre dans une variable php?

par @rthur » 31 oct. 2018, 16:37

Dans la console réseau de ton navigateur si tu cliques sur la ligne post_receiver.php, il va t'afficher à droites les paramètres qui sont passés, donc vérifie que tu as bien les données voulues.

Tu peux remplacer ton echo "<pre>"; print_r($_POST...
par var_dump($_POST); c'est mieux pour debuguer.


Et enfin, que ce soit en utilisant $.post() ou un formulaire en POST ça revient _exactement_ au même au niveau du PHP qui reçoit la donnée

Re: comment récupérer une variable javascript pour la mettre dans une variable php?

par DigitalGeek » 31 oct. 2018, 13:33

Bonjour ,alors je me suis rendu compte qu'il y avait des erreurs de syntaxe , comme par exemple un ")" manquant empêchant le script de se lancer et envoyer le $.post dans browseroutput.php , cela dit maintenant bien que le browseroutput.php se lance , cela ne fonctionne pas encore

Code : Tout sélectionner

<div><button>Test</button></div> <div id="content"> <div id="visited_container"> <h3>visited:</h3> <div id="disclaimer"></div> <ul id="visited"></ul> </div> <div id="not_visited_container"> <h3>Sites checked so far:</h3> <ul id="not_visited"></ul> </div> </div>

Code : Tout sélectionner

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js "></script> <script> $('#content').ready(function(){ var visited = $('#visited').val(); var not_visited = $('#not_visited').val(); $.post('post_receiver.php', {visited:visited,not_visited:not_visited}, $(this).serialize(), function(data){ // show the response of visited ul id $('#visited').html(data); }).fail(function() { alert( "Posting failed." ); }); return false; }); </script>
Image

j'ai ajouter en bas de ma page ceci pour voir les requêtes POST

Code : Tout sélectionner

<?php echo "<pre>"; print_r($_POST); echo "</pre>"; ?>
mais rien ne sort ,étrange :) je ne suis pas loin ....

j'ai un peut de mal a comprendre car le probleme c'est que les exemples sur la toile reprennent souvent une recuperation de form (submit) donc ce n'est pas pareil :)

merci beaucoup

Re: comment récupérer une variable javascript pour la mettre dans une variable php?

par @rthur » 30 oct. 2018, 23:53

Et donc ? Que dis la console de développement ?

Re: comment récupérer une variable javascript pour la mettre dans une variable php?

par DigitalGeek » 30 oct. 2018, 22:47

voici la partie de mon index.html

Code : Tout sélectionner

<div id="content"> <div><button>Test</button></div> <div id="visited_container"> <h3 style='display:none;'>visited:</h3> <div id='disclaimer'>Wait..</div> <ul id="visited"> </ul> </div> <div id="not_visited_container"> <h3>checked so far:</h3> <ul id="not_visited"> </ul> </div> </div>
apres avoir lu https://api.jquery.com/jquery.post/
voici un code qui pourrai fonctionner .....

Code : Tout sélectionner

<script type="text/javascript"> var visited = $('#visited').val(); var not_visited = $('#not_visited').val(); $.post ('browseroutput.php',{postvisited:visited,postnotvisited:not_visited}; </script>
mais il n y a pas de formulaire via POST a récupérer dans mon index.html....

le script se lance tout seul

Code : Tout sélectionner

http://www.exemple.com/index.html#start
(via le button)
est tout se déploie automatiquement

je cherche a exporter le resultat de ces 2 ID dans browseroutput.php avec l'ajax

Code : Tout sélectionner

<ul id="visited"> <ul id="not_visited">
merci beaucoup

Re: comment récupérer une variable javascript pour la mettre dans une variable php?

par DigitalGeek » 30 oct. 2018, 21:40

Merci pour votre réponse @rthur , il manque la partie de mon outil que je n'ai pas poster , (index.html) et je viens de voir qu'il contient les id pour chaque output ..
je me suis rendu compte que la partie JS que j'ai poster sur le forum n'est pas le bon endroit pour récupérer ces 2 variables...
le boulet ...

Re: comment récupérer une variable javascript pour la mettre dans une variable php?

par @rthur » 30 oct. 2018, 20:56

Bonjour,

Tu as 2 parties dans ton appli :
1) l'envoi des données en javascript
2) la réception (et le traitement) dans un script PHP

Pour valider le 1), il faut que tu ouvres la console de développement de ton navigateur (Ctrl+Maj+i sur Firefox ou Chrome) que tu ailles dans l'onglet réseau/network, et ensuite que tu regardes si l'envoi des données se fait bien et avec les bons paramètres en cliquant sur la ligne où il y a le nom de ton fichier appelé.
Voici la doc de Jquery $.post que tu utilises, inspires toi des exemples si tu as un problème :
https://api.jquery.com/jquery.post/


Ensuite une fois que cette première partie est validée, tu pourras t'attaquer à ton script PHP pour le traitement.
Tu as un tuto ici qui est assez bien fait :
https://openclassrooms.com/fr/courses/9 ... ormulaires
Un formulaire en POST c'est la même chose que ton appel $.post()

comment récupérer une variable javascript pour la mettre dans une variable php?

par DigitalGeek » 30 oct. 2018, 19:20

Bonjour a la communaute ,

j'ai une fonction en javascript et j'aimerai récupérer le output de ces 2 elements

Code : Tout sélectionner

visitedElem notVisitedElem
dans 2 variable php ,
browseroutput.php

Code : Tout sélectionner

$visited = $_POST['visitedElem']; $notvisited = $_POST['notVisitedElem'];
voici la function javascript

Code : Tout sélectionner

function test () { const button = document.querySelector('button') const visitedElem = document.getElementById('visited') const notVisitedElem = document.getElementById('not_visited') button.onclick = () => { window.location.hash = '#start' window.location.reload(true) } document.querySelectorAll('h3').forEach((node) => { node.style.display = 'block' }) document.getElementById('disclaimer').style.display = 'block' window.performance.setResourceTimingBufferSize(1000) window.HOSTS.forEach(function (url, i) { window.fetch(url, {mode: 'no-cors'}).then(() => { display(url, notVisitedElem) }).catch(() => { display(url, notVisitedElem) }) }) const intervalId = setInterval(() => { const timings = window.performance.getEntriesByType('resource') timings.forEach((timing) => { let url = timing.name if (url.includes(':443') && !visited[url]) { display(url, visitedElem) visited[url] = true } }) }, 666) setTimeout(() => { console.log('timing out') clearInterval(intervalId) }, 300000) }


je voudrai ajouter ce genre de code afin d'exporter le output dans 2 php variables
mais comme je suis debutant ...évidement ca ne fonctionne pas :)

Code : Tout sélectionner

$.post ('browseroutput.php',(visitedElem[],notVisitedElem[]));
pourriez vous me donner une direction svp ?

merci beaucoup