11521 sujets
JavaScript, DOM et API Web HTML5
Si quand tu fais ça
tu as ça
alors il suffit de faire ça
J'ai écrit volontaire data.[j] au lieu de i car sinon ça chie. mais faut remplacer j par i
console.log(data);
$('input').each(function(){
$(this).val(data)
i++;
});
tu as ça
["test","d","admin@siteamap.com","4","1","0","sfde","sdf"]
alors il suffit de faire ça
console.log(data);
$('input').each(function(){
$(this).val(data[j])
i++;
});
J'ai écrit volontaire data.[j] au lieu de i car sinon ça chie. mais faut remplacer j par i
Je vais remettre les deux page de code pour voir tous l'ensemble et mettre le résultat des pages.
Donc avec ce code la envoi le nom donc la "test" a la page traitement.php en methode GET.
Ce code reçoit le nom "test" puis il le traite. a la fin dans la variable $informations il y a ça :
["test","d","admin@siteamap.com","4","1","0","sfde","sdf"]
Jusqu’à la je pense que ça va tous ce passe bien mais apres plus rien ne ce passe je sais pas par ces informations et aucuns inputs se remplissent.[/i]
<?php include('Include/General/connexion.php');?>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<section class="seccreacompte">
<SCRIPT>
<!--
$(document).ready(function() {
$('select#nom').change(function() {
//On récupère le nom
var value = $(this).val();
//Index
var i = 0;
//On prépare l'Ajax
$.ajax({
//On indique le fichier ou aller consulter
url: "Include/Profil/traitement.php",
//Le type de l'envoi (POST ou GET)
type: "GET",
//On indique que le résultat sera un tableau JSON
dataType: "JSON",
//On lui donne le nom de la personne
data: {nom : value},
success:function(data)
{
//Nécessite d'avoir les informations du tableau dans le
//même ordre que les inputs
console.log(data);
$('input').each(function(){
$(this).val(data[i])
i++;
});
}
});
});
});
//-->
</SCRIPT>
<form method="POST" action="" class="formClassique">
<fieldset class="creacompte">
<legend><h3>Infos compte</h3></legend>
<table>
<tr><td><br><br>
<select id="nom" .change>
<option value=''>Aucun</option>
<?php
$requete="select * from Utilisateurs order by login;";
$res= $mysqli->query($requete) or die ("erreur dans la requete");
$ligne=mysqli_fetch_array($res);
while($ligne)
{
echo'<option value='.$ligne['login'].'>'.$ligne['login'].'</option>';
$ligne=mysqli_fetch_array($res);
}
?>
</SELECT>
</td></tr>
<tr><td><p> Login : </td><td> <input type="text" /required></p></td></tr>
<tr><td><p> Mot de passe: </td><td> <input type="text" /required></p></td></tr>
<tr><td><p> Mail : </td><td><input type="email" /required/></p></td></tr>
<tr><td><p> Grade : </td><td><input type="text" /required/></p></td></tr>
<tr><td><p> Mail : </td><td><input type="text" /required/></p></td></tr>
<tr><td><p> Nom : </td><td><input type="text" /required/></p></td></tr>
<tr><td><p> Prenom : </td><td><input type="text" /required/></p></td></tr>
</table>
</fieldset>
<br>
<center><p><input type="submit" />
<input type="reset"/></p>
</form>
</section>
Donc avec ce code la envoi le nom donc la "test" a la page traitement.php en methode GET.
<?php
include('../General/connexion.php');
$nom = $_GET['nom'];
$informations = "";
if ($result = $mysqli->query("SELECT * FROM Utilisateurs WHERE login='$nom'"))
{
while ($row = $result->fetch_array(MYSQLI_NUM))
{
$informations[] = $row;
}
/* Libération du jeu de résultats */
$result->close();
}
else
{
printf("Message d'erreur : %s\n", $mysqli->error);
}
$informations = $informations[0];
echo json_encode($informations);
?>
Ce code reçoit le nom "test" puis il le traite. a la fin dans la variable $informations il y a ça :
["test","d","admin@siteamap.com","4","1","0","sfde","sdf"]
Jusqu’à la je pense que ça va tous ce passe bien mais apres plus rien ne ce passe je sais pas par ces informations et aucuns inputs se remplissent.[/i]
Comme l'a précisé JENCAL, pense bien à faire un data[tonIndexDeLecture] et non pas un simple data qui renverra toujours ton tableau en entier (qui pour moi n'est pas vraiment du JSON, mais que les validateurs acceptent, alors... ) :
Modifié par SolidSnake (31 Jul 2015 - 07:35)
$('input').each(function(j){
// console.info(data[j]) // À décommenter pour tester tes valeurs
$(this).val(data[j])
})
Modifié par SolidSnake (31 Jul 2015 - 07:35)
Comment je peut rajouter l'id a chaque élément du tableau ?
je vois pas comment je peut passer de ça:
["test","d","admin@siteamap.com","4","1","0","sfde","sdf"]
A ça :
[{"id":"11111"},{"id":"22222"},{"id":"33333"},{"id":"55555"},{"id":"66666"},{"id":"77777"},{"id":"8888"},{"id":"99999"}]}
Je part en vacance demain matin jusqu'à fin août je ne pourrais donc pas travailler sur le code mais je lirais sur ma boite mail ce que vous écrivez.
je vois pas comment je peut passer de ça:
["test","d","admin@siteamap.com","4","1","0","sfde","sdf"]
A ça :
[{"id":"11111"},{"id":"22222"},{"id":"33333"},{"id":"55555"},{"id":"66666"},{"id":"77777"},{"id":"8888"},{"id":"99999"}]}
Je part en vacance demain matin jusqu'à fin août je ne pourrais donc pas travailler sur le code mais je lirais sur ma boite mail ce que vous écrivez.
Bonjour,
Je n'ai pas testé, mais sur ta page PHP je vois un truc du genre :
Je n'ai pas testé, mais sur ta page PHP je vois un truc du genre :
$row = $result->fetch_array(MYSQLI_ASSOC); // si tu précises le nom de toutes les colonnes que tu souhaites (et donc pas *) dans ton SELECT
echo json_encode($row);
// ou
$row = $result->fetch_array(MYSQLI_NUM);
$tableau["nom"]=$row[0];
$tableau["lettre"]=$row[1];
$tableau["email"]=$row[2];
...
echo json_encode($tableau);