8722 sujets

Développement web côté serveur, CMS

Pages :
(reprise du message précédent)

Ah.. xD J'aime me compliquer la vie. J'étais en train de chercher un moyens mais s'il y a plus simple..

Pourriez-vous m'éclairer un peu.. ?

J'ai essayer plusieurs choses avec votre version en remplaçant la connection tout ça par PDO mais rien ne se passe..
Je suppose qu'il faut changer toutes les requètes mysqli par celles correspondantes PDO.. ?

Pour l'instant le code qui fonctionne est le suivant pour traitements.php

$wp_id = $_POST['wp_id'];
require_once('connection.php');
$select = $connection->query("SELECT * FROM utilisateurs WHERE wp_id='$wp_id'");
$select->setFetchMode(PDO::FETCH_OBJ);
$enregistrement = $select->fetch();
if( $enregistrement ) {
  echo $enregistrement->usrnom;
} 
else {
  echo "Aucun résultat";
}

Modifié par Takushi (29 Jan 2013 - 11:50)
Salut

Si tes inputs sont classés dans le même ordre que les champs de ta base de données (wp_id en premier etc ...) alors le remplissage se fait automatiquement dans les bons inputs.

Ensuite


$wp_id = $_POST['wp_id'];
require_once('connection.php');
$select = $connection->query("SELECT * FROM utilisateurs WHERE wp_id='$wp_id'");
$select->setFetchMode(PDO::FETCH_OBJ);
$enregistrement = $select->fetchAll();
if( $enregistrement ) {
  $enregistrement = $enregistrement[0];
  echo json_encode($enregistrement);
} 
else {
  echo "Aucun résultat";
}


devrait marcher Smiley smile
Modifié par John Wayne (29 Jan 2013 - 11:58)
Du coup ça m'affiche toutes les infos séparées avec virgules dans toutes les inputs.
{"wp_id":"test","usrnom":"Monsieur Testeur"}


Je pense qu'il ne reste qu'à modifier le javascript.
(En fin de compte, c'est surement quelque chose à rajouter à echo json_encode($enregistrement);

Puisque cette commande m'affiche tout le tableau crééer.
J'ai essayer plusieurs choses du genre rajouter [1], ['usrnom'] etc.. rien à faire.
Modifié par Takushi (29 Jan 2013 - 12:39)
Salut

J'ai pu regarder un peu le PDO et le JSON et d'après mes recherches il va falloir faire tout à la main Smiley ohwell En effet il va falloir affecter à chaque attribut sa valeur ce qui donnera quelque chose comme sa dans la fonction success du javascript :


success:function(data)
{
	$('input#wp_id').val(data.wp_id);		
        $('input#usrnom').val(data.usrnom);	
        [...]						
}


Bien sûr il faut que tu attribut un id à chaque input.
Mon .js ressemble à ça

$(document).ready(function() {
$('select#modif').change(function() {
var value = $(this).val();
var i = 0;
$.ajax({
url: "traitements.php",
type: "POST", 
dataType: "JSON",
data: {wp_id : value},
success:function(data)
{
$('input.ajax').each(function(){
			$(this).val(data)
i++;
});}});});});


Lorsque j'essai de modifier comme vous m'avez dit, je reçois des erreurs sur dreamweaver.. Je ne comprends vraiment pas d'ou elles viennent..
Ça me marque juste qu'il y a une erreur à tel ligne et que le code ne fonctionnera pas tant qu'elle n'est pas résolus.. Ça aide Smiley smile

C'est juste une histoire de fermeture je pense. Mais je n'arrive pas à trouver quoi.

Si je fais

$(document).ready(function() {
$('select#modif').change(function() {
var value = $(this).val();
var i = 0;
$.ajax({
url: "traitements.php",
type: "POST", 
dataType: "JSON",
data: {wp_id : value},
success:function(data)
{
$('input#wp_id').val(data.wp_id);
i++;
});}});});});


Il me note une erreur à la dernière ligne.
Exact c'est

$(document).ready(function() {
$('select#modif').change(function() {
var value = $(this).val();
$.ajax({
url: "traitements.php",
type: "POST", 
dataType: "JSON",
data: {wp_id : value},
success:function(data)
{
$('input#wp_id').val(data.wp_id);
}
});});});


EDIT : j'ai enlevé le var i = 0 et le i++
Modifié par John Wayne (29 Jan 2013 - 14:43)
Okay ça marche Smiley smile Merci bien.
(j'ai recompter les accolades, parenthèses tout ça, du coup j'ai relancer dream et.. plus d'erreur. Vive Dream Smiley biggol )
Modifié par Takushi (29 Jan 2013 - 14:49)
Du coup plus rien ne fonctionne.. Ne faut-il pas garder le .each ?
J'essaye avec

$(document).ready(function() {
$('select#modif').change(function() {
var value = $(this).val();
var i = 0;
$.ajax({
url: "wp-content/themes/dipan/traitements.php",
type: "POST", 
dataType: "JSON",
data: {wp_id : value},
success:function(data)
{
$('input#usrnom').each(function(){
			$(this).val(data.usrnom)
i++;
});}});});});


Mais rien ne fonctionne T-T
Salut

Non, each signifie chaque hors là on sélectionne que les inputs un par un. Là le code est fonctionnelle donc vérifie que les ids des inputs correspondent bien à ce que tu mets dans la parenthèse après le $ après je ne vois pas d'ou pourrait venir l'erreur puisque j'ai le même code et c'est fonctionnelle chez moi ^^.

Dans la fonction success rajoute cette ligne

alert(JSON.stringify(data));


Et dis moi si dans la fenêtre qui s'est ouverte si il t'affiche bien un tableau sous la forme

{"wp_id":"test","usrnom":"Monsieur Testeur"}
Les ids sont exactes et la popup m'affiche bien les infos de la table de l'utilisateur que j'ai sélectionner. Mais rien ne s'affiche dans l'input.

Par contre, si j'enleve le .usrnom derrière le data, il m'affiche bien cette liste dans la bonne input.
Modifié par Takushi (29 Jan 2013 - 15:11)
Mais c'est bien sous la forme

{"truc" : "bidule", "truc2" : "bidule2"}

?

Au pire faire un screenshot pour que je puisse voir Smiley cligne
John Wayne a écrit :
Mais c'est bien sous la forme

{"truc" : "bidule", "truc2" : "bidule2"}

?

Au pire faire un screenshot pour que je puisse voir Smiley cligne



Voila ce que j'obtient dans la popup:
"{\"wp_id\":\"florian\",\"usrimg\":\"http:\\/\\/blabla.fr\",\"usrnom\":\"Monsieur Test\",\"usrtel\":\"01 02 03 04 05\",\"usrmail\":\"test@me.com\",\"usradresse\":\"25 rue pinot\",\"usrcp\":\"75000\",\"usrville\":\"Paris\",\"chargenom\":\"Charge nom prenom\",\"chargetel\":\"Charge telephone\",\"chargemail\":\"Charge mail\",\"assnom\":\"Assistante nom prenom\",\"asstel\":\"Assistante telephone\",\"assmail\":\"Assistante mail\"}"

Modifié par Takushi (29 Jan 2013 - 15:15)
Alors là je ne comprends pas pourquoi sa ne marche pas Smiley sweatdrop

Je suppose que c'est dreamweaver qui ajoute toutes les \ donc bon normalement sa influence en rien.

T'es sûr que
$('input#wp_id').val(data.wp_id);
n'affiche rien ? Si c'est le cas là je comprends absolument pas pourquoi vu que j'ai exactement pareil chez moi et que sa fonctionne Smiley confus
Ça ne peux être dreamweaver qui rajoute les slashs etc.. Enfin ça me paraîtrait étrange puisque c'est juste un logiciel comme notepad.. C'est le navigateur qui envoie la requête..

Il se pourrait que ma base de donnée soit d'une telle configuration que ça ne fonctionne pas ?
Pourrait-tu me repasser les codes du .js ainsi que du traitements.php.. ?

J'ai peut-être oublier quelque chose.
(C'est déprimant d'arriver aussi près !)
Au fait, je viens de regarder le phpinfo d'OVH..

Mysqli est bien là en version 5.1.61

.. La vache.. J'avais lu sur internet que Mysqli n'était pas supporté et je n'ai même pas penser à vérifier..

EDIT: J'ai réessayer avec ton code qui fonctionnait avec Mysqli, je n'obtient que des "" dans les inputs Smiley biggol
Modifié par Takushi (29 Jan 2013 - 15:35)
Salut

J'avoue que je ne connais absolument pas DreamWeaver du coup j'ai supposé que c'était lui qui inséré les \.
Mais ces \ pourraient être la cause du problème. De plus le fait qu'il te mette des " " en début et fin de ligne pourrait faire passer la tableau en chaîne de caractère ce qui pourrait aussi causer un problème.

Peut aurais-je trouvé une solution pourrais tu insérer ceci dans la fonction success met en premier ! :


data = $.parseJSON(data);
alert(data.wp_id);


Normalement tu aura une pop up qui va s'affiché avec le wp_id de l'utilisateur que tu as choisi.

EDIT : ah ouais mais si tu bascule tout le temps entre MySQLi et PDO on va pas s'en sortir, reste en PDO pour l'exemple ci-dessus Smiley cligne
Modifié par John Wayne (29 Jan 2013 - 15:43)
J'ai le wp_id sélectionné en réponse.
J'enlève l'alerte et je reçois dans l'input: [object Object]

(si s'était l'étape suivante..)
Tu veux dire que si tu mets

$('input#wp_id').val(data.wp_id);	


à la suite de $.parseJSON[...] tu obtiens [object Object] ?

Euh j'ai envie de dire WTF, t'es sur de ne pas mettre que data ?
Pages :