Récupérer des variables javascript par input type hidden en PHP

Fermé
abirgl
Messages postés
127
Date d'inscription
lundi 31 octobre 2016
Statut
Membre
Dernière intervention
20 juin 2017
- 31 janv. 2017 à 10:32
jordane45
Messages postés
36040
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 août 2022
- 31 janv. 2017 à 16:19
Bonjour,
Je veux utiliser deux variables javascript dans un traitement php, j'ai pas trouvé comment passer ces variables de javascript en php sachant que j'ai besoin d'utiliser ces variables dans la même page contenant le code html+js+php, j'ai l'idée de créer deux champs de type hidden mais j'ai pas réussi à les récupérer ( je peux les récupérer seulement si je défini une action dans mon form et puis dans la page définie dans action c'est possible de les récupérer mais moi j'ai pas besoin de les récuperer dans une autre page , j'ai besoin de les récupérer dans la page même)
code JavaScript:

<script type="text/javascript">
function maPosition(position)
{ var Latitude = position.coords.latitude ;
var Longitude=position.coords.longitude;
document.getElementById("malatitude").value=Latitude;
document.getElementById("malongitude").value=Longitude;
}
if(navigator.geolocation)
navigator.geolocation.getCurrentPosition(maPosition);
</script>


code HTML:

<input type="hidden" name="malatitude" id="malatitude">
<input type="hidden" name="malongitude" id="malongitude">


code PHP:

<?php
$latt=$_POST['malatitude'];
echo $latt;
?>

ceci me retourne une erreur , undefined index:malatitude in ...
SVP, commet je peux corriger ceci pour récupérer les deux variables javascript longitude et latitude en PHP ? Y a t il une autre idée ? Merci d'avance

1 réponse

jordane45
Messages postés
36040
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 août 2022
4 275
31 janv. 2017 à 10:42
Bonjour,

Il nous faut le code complet de ta page ...
Tes champs "hidden" sont bien dans un FORM ?
Sinon... normal que tu ne puisse pas les récupérer ...

De plus ... tu ne pourrais les avoir en PHP qu'après avoir fait un SUBMIT de ton formulaire .... car pour rappel .. le Javascript s'exécute côté "poste utilisateur" alors que le PHP, lui, s'exécute côté "serveur".

1
abirgl
Messages postés
127
Date d'inscription
lundi 31 octobre 2016
Statut
Membre
Dernière intervention
20 juin 2017

31 janv. 2017 à 10:56
Bonjour Jordane,
oui mes champs hidden sont dans un formulaire, concernant le submit, j'ai pas besoin d'aucun bouton dans ma page :( j'ai besoin de faire tout le traitement dans une seule page, si 'est pas la bonne manière de penser , pouvez vous me renseigner une autre façon de traitement ?
Je vous montre mon code :

<?php
include("connect.php");
$current_date=date('Y-m-j');
?>
<!DOCTYPE html>
<html>
<style>
#mapDiv {
width:700px;
height:500px;
border:1px solid #efefef;
margin:auto;
-moz-box-shadow:5px 5px 10px #000;
-webkit-box-shadow:5px 5px 10px #000;
}
</style>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>GSA</title>
<link href="assets/plugins/bootstrap/bootstrap.css" rel="stylesheet" />
<link href="assets/font-awesome/css/font-awesome.css" rel="stylesheet" />
<link href="assets/plugins/pace/pace-theme-big-counter.css" rel="stylesheet" />
<link href="assets/css/style.css" rel="stylesheet" />
<link href="assets/css/main-style.css" rel="stylesheet" />
<link href="assets/plugins/morris/morris-0.4.3.min.css" rel="stylesheet" />
<script src=""quot;https://maps.googleapis.com/maps/api/js?key=AIzaSyDm85_icmgwRYEITWUiNSghvz30CZnB6NQ&language=fr" type="text/javascript">
</script>
<script>
if(navigator.geolocation)
{
function hasPosition(position) {
var point = new google.maps.LatLng(position.coords.latitude, position.coords.longitude),

myOptions = {
zoom: 15,
center: point,
mapTypeId: google.maps.MapTypeId.ROADMAP
},

// Envoi de la carte dans la div
mapDiv = document.getElementById("mapDiv"),
map = new google.maps.Map(mapDiv, myOptions),
marker = new google.maps.Marker({
position: point,
map: map,
title: "Vous êtes ici"
});
}
navigator.geolocation.getCurrentPosition(hasPosition);
}
</script>

<script type="text/javascript">
function maPosition(position)
{ var Latitude = position.coords.latitude ;
var Longitude=position.coords.longitude;
document.getElementById("malatitude").value=Latitude;
document.getElementById("malongitude").value=Longitude;
}
if(navigator.geolocation)
navigator.geolocation.getCurrentPosition(maPosition);
</script>
</head>
<body>
<form name="fc" method="POST" >
<div id="wrapper">
<nav class="navbar navbar-default navbar-fixed-top" role="navigation" id="navbar">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".sidebar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<img src=""quot;assets/img/logo3.jpeg" alt="" />
<img src=""quot;assets/img/slide.jpeg" alt="" />
<img src=""quot;assets/img/d1.jpeg" alt="" />
<img src=""quot;assets/img/d3.jpeg" alt="" />
<img src=""quot;assets/img/d8.jpeg" alt="" />
<img src=""quot;assets/img/d44.jpeg" alt="" />
<img src=""quot;assets/img/d6.jpeg" alt="" />
</div>
<ul class="nav navbar-top-links navbar-right">
<li class="dropdown"> <ul class="dropdown-menu dropdown-messages"><li> <a href="#" rel="nofollow noopener noreferrer" target="_blank"> <div> </div> </a> </li> <li class="divider"></li> <li> </li> </ul> </li>
<li class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#" rel="nofollow noopener noreferrer" target="_blank"> </a></li>
<li class="dropdown"> <ul class="dropdown-menu dropdown-alerts"><li> <a href="#" rel="nofollow noopener noreferrer" target="_blank"> </a></li> </ul></li>
<li class="dropdown"> </li>
</ul>
</nav>
<nav class="navbar-default navbar-static-side" role="navigation">
<div class="sidebar-collapse">
<ul class="nav" id="side-menu">
<li>
<div class="user-section">
<div class="user-section-inner"><img src=""quot;assets/img/user.jpg" alt=""></div>
<div class="user-info">
<div> <strong>
<?php
echo ("Abir");
?>
</strong></div>
<div class="user-text-online"><span class="user-circle-online btn btn-success btn-circle "></span> Online</div>
</div>
</div>
</li>
<li><a href="#" rel="nofollow noopener noreferrer" target="_blank"><i class="fa fa-dashboard fa-fw"></i>Liste Des OT Planifiés</a> </li>
<li><a href="#" rel="nofollow noopener noreferrer" target="_blank"><i class="fa fa-wrench fa-fw"></i>Interventions En Cours</a> </li>
<li> <a href="#" rel="nofollow noopener noreferrer" target="_blank"><i class="fa fa-table fa-fw"></i>Interventions Validées</a> </li>
<li><a href="Logout.php" rel="nofollow noopener noreferrer" target="_blank"><i class="fa fa-sign-out fa-fw"></i>Logout</a> </li>
</ul>
</div>
</nav>
<div id="page-wrapper">
<div class="row"> <div class="col-lg-12"> <h1 class="page-header">Liste des Clients</h1> </div></div>
<div class="row"></div>
<div class="row">
<div class="col-lg-8">
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa fa-bar-chart-o fa-fw"></i>Liste des Clients
<div class="pull-right"> <div class="btn-group"> <ul class="dropdown-menu pull-right" role="menu"> </ul> </div> </div>
</div>
<input type="hidden" name="malatitude" id="malatitude">
<input type="hidden" name="malongitude" id="malongitude">
<div class="panel-body">
<div class="row">
<div class="col-lg-12">
<div class="table-responsive">
<table class="table table-bordered table-hover table-striped">
<thead>
<tr>
<th>Code Client</th>
<th>Raison Sociale</th>
<th>Longitude</th>
<th> Latitude </th>
<th> Distance </th>
</tr>
</thead>
<?php
$tab_Clients=array();
$sql = "select * from CustomerForTest";
$stmt = sqlsrv_query( $conn, $sql );
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC) )
{
$ligne=$row[0]." | ".$row[1]." | ".$row[2]." | ".$row[3];
array_push($tab_Clients, $ligne);
?>
<tbody>
<tr>
<td><?php echo $row[0] ?></td>
<td><?php echo $row[1] ?></td>
<td><?php echo $row[2]; ?></td>
<td><?php echo $row[3];?> </td>
<td>
<?php
$latt=$_POST['malatitude'];
$longt=$_POST['malongitude'];
echo $latt;
echo $longt;
?>
</td>
</tr>
<?php
}
sqlsrv_free_stmt( $stmt);
?>
</tbody>
</table>
<div id="mapDiv"></div>
</div>

</div>
</div>
</div>

</div>
</div>

<div class="col-lg-4">
<div class="panel panel-primary text-center no-boder"></div>
<div class="panel panel-primary text-center no-boder"></div>
<div class="panel panel-primary text-center no-boder"></div>
<div class="panel panel-primary text-center no-boder"></div>
</div>
</div> <div class="row"> <div class="col-lg-4"></div></div> </div> </div>
</div>
<script src=""quot;assets/plugins/jquery-1.10.2.js"></script>
<script src=""quot;assets/plugins/bootstrap/bootstrap.min.js"></script>
<script src=""quot;assets/plugins/metisMenu/jquery.metisMenu.js"></script>
<script src=""quot;assets/plugins/pace/pace.js"></script>
<script src=""quot;assets/scripts/siminta.js"></script>
<script src=""quot;assets/plugins/morris/raphael-2.1.0.min.js"></script>
<script src=""quot;assets/plugins/morris/morris.js"></script>
<script src=""quot;assets/scripts/dashboard-demo.js"></script>

</form>
</body>
</html>

0
Nexii
Messages postés
333
Date d'inscription
jeudi 13 mars 2014
Statut
Membre
Dernière intervention
14 mars 2017
440
31 janv. 2017 à 10:57
En effet comme l'a précisé Jordane, tant qu'il n'y aura pas d'envoi de formulaire tu ne pourra exécuter de code PHP SAUF en utilisant la technologie AJAX.
Celle-ci te permettra d'exécuter une requête HTTP vers ton serveur sans avoir à recharger la page suite à une action JavaScript.
Je te laisse te renseigner sur cette technologie
0
abirgl
Messages postés
127
Date d'inscription
lundi 31 octobre 2016
Statut
Membre
Dernière intervention
20 juin 2017

31 janv. 2017 à 11:40
Bonjour Nexii,
J'ai déjà essayé de travailler avec Ajax, mais j'ai trouvé que c'est vraiment dur pour moi, c'est assez difficile pour mon petit cerveau, voilà j'ai posté mon code , pouvez vous m'aider à récupérer mes deux variables javascript en php à travers Ajax ? j'en serait très reconnaissante
0
abirgl
Messages postés
127
Date d'inscription
lundi 31 octobre 2016
Statut
Membre
Dernière intervention
20 juin 2017

31 janv. 2017 à 15:51
Bonjour,
Pouvez vous m'aider à récupérer les variables Longitude et Latitude par ajax ? J'ai du mal à comprendre Ajax,

<script type="text/javascript">
function maPosition(position)
{ var Latitude = position.coords.latitude ;
var Longitude=position.coords.longitude;
document.getElementById("malatitude").value=Latitude;
document.getElementById("malongitude").value=Longitude;
}
if(navigator.geolocation)
navigator.geolocation.getCurrentPosition(maPosition);
</script>

J'ai besoin de votre aide pleaase, je suis bloquée
0
jordane45
Messages postés
36040
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 août 2022
4 275 > abirgl
Messages postés
127
Date d'inscription
lundi 31 octobre 2016
Statut
Membre
Dernière intervention
20 juin 2017

31 janv. 2017 à 16:19
0