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!
_ 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
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...
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...
"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']
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...
>>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....
>>"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?
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