AJAX => PHP

Oumbra Messages postés 23 Date d'inscription lundi 18 janvier 2010 Statut Membre Dernière intervention 14 mars 2010 - 13 févr. 2010 à 21:22
Oumbra Messages postés 23 Date d'inscription lundi 18 janvier 2010 Statut Membre Dernière intervention 14 mars 2010 - 14 févr. 2010 à 18:48
Bonjour tout le monde,

J'ai un sérieux soucis, je n'arrive pas à comprendre, après avoir lu 4 tutos entier et lu plusieurs réponses sur les fofos, presque dans le même genre, comment modifier une base de donnée à l'aide de AJAX !


S'il vous plait, expliquez-moi :(

ps:
Pour info je voudrais me servir de la technologie AJAX pour incrémenter des valeurs d'une base de donnée en mode transparent (sans recharger la totalité de la page).

Je sais récupérer et incrémenter les données en javascript et les afficher mais je ne sais pas les mettre à jours dans ma base de donnée.

Je sais que ma solution est l'AJAX mais hélas je ne comprends vraiment pas comment faire (a part afficher des données d'une base de donnée sans charger la page, je ne vois pas en quoi l'AJAX est si formidable).

2 réponses

Oumbra Messages postés 23 Date d'inscription lundi 18 janvier 2010 Statut Membre Dernière intervention 14 mars 2010 34
14 févr. 2010 à 05:36
J'ai réussit à créer une application en AJAX (...ouf) mais (oui hélas il y a un mais)
l'AJAX fait bien son travail et donne bien les infos au PHP mais je n'ais hélas pas de reponse.

Mon script permet d'effectuer une UPDATE dans la base de donnée en transparent (le principe d'AJAX) mais normalement avec le retour du serveur je devrais pouvoir afficher changement mais c'est impossible, le changement est bien effectif dans la base de donnée (et ça je le vérifie facilement avec un petit F5) donc j'aimerais savoir si certain pouvais me dire ce qui cloche dans mon AJAX ou mon PHP :
<!-- L'AJAX --->

function getXMLHTTP()
{
var xhr = null;
if(window.XMLHttpRequest)
{
xhr = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
try
{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e1)
{
xhr = null;
}
}
}
else
{
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
}
return xhr;
}

var XHR = null;

function Plus(id,spirit,value)
{
if(XHR && XHR.readyState != 0)
{
XHR.abort();
delete XHR;
}
XHR = getXMLHTTP();
if(!XHR)
{
return false;
}
XHR.open("GET", "update.php?type="+id+"&spirit="+spirit, true);
XHR.onreadystatechange = function()
{
if (XHR.readyState == 4)
{
alert(id + ' + 1');
[u]document.getElementById(id).innerHTML = parseInt(value)+1;
document.getElementById(id'_2').innerHTML = parseInt(value)*10;/u
<!-- la multiplication ne fonctionne pas par 10 :( par 9 et 11 oui mais pas par dix (meme 5*2 et toutes les autres combinaison... Allez comprendre... Il doit savoir que je veux juste le '*10'-->
}
}
XHR.send(null);
}

<!-- LE PHP -->
<?php
$id_e = 1;
mysql_connect("localhost","root","");
mysql_select_db("lunatic-ambrosia");
$sql = "SELECT * FROM elementaire WHERE id_e='".$id_e."';";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result))
{
$for = $row['for_e'];
$const = $row['const_e'];
$id_e = $row['id_e'];
echo "
Force :, ".$for.",
Constitution :, ".$const.",

----

Attaque :, ".($for*10).",
Defence :, ".($const*10)."

";
}
?>

Merci d'avance :)
0
Oumbra Messages postés 23 Date d'inscription lundi 18 janvier 2010 Statut Membre Dernière intervention 14 mars 2010 34
14 févr. 2010 à 18:48
Mon gros problème surtout c'est que je n'arrive pas à utiliser xhr.reponseText
0
Rejoignez-nous