En faite this.form j'éssais d'envoyer le contenus de chaque champ sauf que je suis sur que c'est pas comme ca!
fonction javascript:
function request( url , form) {
var req = null; //défini l'objet req de façon globale, pour qu'il soit reconnu dans tout le script
req = new XMLHttpRequest();
req.onreadystatechange = testRep; // ici on attribue la fonction à req.onreadystatechange, mais on ne l'exécute pas encore, donc ne pas mettre les ()
req.open("POST", url , true);
req.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // je sais pas ce que ça veut dire mais c'est INDISPENSABLE pour transmettre des données au script php
data = "id= "+ form ;
req.send(data);
function testRep() { // cette fonction va lancer l'affichage des données reçues, une fois que la requête sera "complete" (readyState =4)
if (req.readyState == 4) {
if (req.status == 200) {
document.open(); //ceci ouvre un nouveau flux qui va permettre l'exécution des commandes qui suivent (ici document.write) s'exécute simultanément
document.write(req.responseText); // responseText contient la chaîne de caractères transmise par echo dans le script php
document.close(); // ceci ferme le flux et lance l'exécutions des commandes qui precèdent
}
else {
alert("Problem: " + req.statusText);
}
}
}
}
Fichier maj_profile.php:
<?PHP
include("./../config.php");
@mysql_connect($sql_serveur, $sql_login, $sql_password) or die("Connection interrompue");
@mysql_select_db($sql_base);
// Update ds données GPS du joueur.
$sql = "UPDATE membres SET login='$user', langue='$langue', style='$style' WHERE id='$id' ";
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'
'.mysql_error());
echo $sql;
mysql_close();
//si on veut afficher un resultat :
//echo 'Update : '.$result_update_1;
?>
Bon au final y rien qui marche mais ca ne me surpend pas!
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 26 oct. 2008 à 08:17
sauf que
_ le séparateur des champs n'est pas "," mais "&"
_ que finir par un séparateur, pas sûr que ça plaise
( substr ou substring nécessaire )
_ qu'il faudrait peut-être tester si le champ
a un ID ( ou un name ) et un value
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 25 oct. 2008 à 12:00
bonjour,
1° que tentes-tu donc d'envoyer au php ?
data = "id="+form;
req.send(data);
fait donc un alert de data... pour voir !
( c'est une chaîne de caractères qu'on doit envoyer )
( et perso, j'évite les noms de variables ressemblant à des noms de balises
ou autres, connus du html/javascript... un jour ou l'autre ça
te posera des problèmes )
2° tu fais un document.write, or la page ayant été totalement interprétée,
ça efface toute la page, y compris le javascript !
3° pas été plus loin pour l'instant, pas regardé si tu avais d'autres erreurs...
davidcian
Messages postés186Date d'inscriptionvendredi 18 novembre 2005StatutMembreDernière intervention19 décembre 20091 25 oct. 2008 à 13:39
Merci de ta réponse j'ai un peu avancé mais je reste bloqué sur un point important...
function valide(url, form) {
var req = null;
req = new XMLHttpRequest();
req.onreadystatechange = testRep;
req.open("POST", url, true);
req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
data = "id="+ form
alert(data);
}
retour:
id=[object HTMLFormElement]
Donc ça marche bien, je souhaite transmettre la totalité de mon formulaire vers la page maj_profile.php et une sur le le fichier récupere la valeur des champs. Mais je sais pas comment faire...
Vous n’avez pas trouvé la réponse que vous recherchez ?
"normalement" ça correspond à quoi ces $_POST ?
aux name des champs du formulaire....
et dans ton formulaire, tu n'as que 2 champs : test1 et test2....
tu ne peux donc qu'utiliser $_POST['test1'] et $_POST['test2']
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 25 oct. 2008 à 13:48
on s'est croisé !
>>id=[object HTMLFormElement]
>>Donc ça marche bien
ah ben non ! justement ! ça marche pas du tout !
comment tu récupères ça coté php ?
j'insiste ? ce qu'on transmet doit être une chaine de caractères !!!!!
dans ton cas, par exemple :
data="test1="+document.mon_profile.test1.value+"?test2="+document.mon_profile.test1.value; et coté php comme indiqué au message précédent...
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 25 oct. 2008 à 14:06
>>e problème c'est que voudrais que cette fonction marche pour plusieurs
formulaires
>>donc id des champs et nombre de champs différent.
il te reste à construire une ch'tiote fonction qui regarde tous les champs
du formulaire et le transforme en :
name ou id_champ1=value_champ1&name ou id _champ2=value_champ2&name ou id _champ3=value_champ3.....
c'est assez simple à faire.
sinon regarde ce qu'on nomme framework, ils ont tous,
ou alors... utilise en un....
davidcian
Messages postés186Date d'inscriptionvendredi 18 novembre 2005StatutMembreDernière intervention19 décembre 20091 25 oct. 2008 à 14:35
>>"il te reste à construire une ch'tiote fonction qui regarde tous les champs
du formulaire et le transforme en :
name ou id_champ1=value_champ1&name ou id _champ2=value_champ2&name ou id _champ3=value_champ3.....
c'est assez simple à faire."
Je suis assez chaud pour la fonction pourrais me donner un exemple?
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 25 oct. 2008 à 14:49
les billes :
document.name_du_formulaire.elements.length c'est le nombre de champs dans le formulaire
document.name_du_formulaire.elements[index].name ou .id ou .value ou...
c'est le name, l'id, le value ou... du champ étudié
index variant de 0 à length-1
tu concatènes ( dans un for ? ) avec les bons champs à ta variable data
initialisée à "" et basta