Ajax et base de donnees

Résolu
cs_voyager
Messages postés
8
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
27 décembre 2010
- 1 déc. 2009 à 10:37
Bul3
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
- 4 déc. 2009 à 16:43
voyager

Bonjour a tous

Etant debutant je ne sais pas si je post au bon endroit mais bon j essaye

Petit explication pour la comprehension

Donc voila j ai une page principal qui elle meme est constituee d un formulaire representant les heures et d un calendrier.

De cette page principale j appel un formulaire que je renseigne. Apres avoir renseigne se formulaire j envoie donc mes donnees dans une base sql et en meme temps je recupere quelques une d'entre elles afin de remplir le formulaire de la page principale.

1)J'ai fait de nombreux essais en PHP (variable de session entre autre).Bon je me suis toujours retrouver confronte au rafraichissement de la page. Car effectivement j'arrivais a tramsmettre les datas du formulaire a la page principale mais je n arrivais pas a stoquer plus d'une data dans la balise div predefinie

2)Finalement j essaye ajax et voila se que j ai modestement fait:

a)Fonction que j appel lors du retour sur la page principale apres avoir renseigner le formulaire

La variable i est une variable global

function ajout_input10()
{
var xhr_object = null;

if(window.XMLHttpRequest) // Firefox et autres
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr_object = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr_object = false;
}
xhr_object.open("GET","pickup.php?i="+i, true);
xhr_object.onreadystatechange = function() {
if(xhr_object.readyState 4 && xhr_object.status 200)
{
leselect = xhr_object.responseText;
document.getElementById("inputs10").innerHTML += leselect("\n","
");
document.getElementById("inputs10").style.backgroundColor="CCFFFF";
}
xhr_object.send(null);
}
}
Fichier php ou je reupere mes datas necessaires au remplicage de la page principale
<?php
$x="";
if ($x=$_GET['i']){
$dp = mysql_connect("localhost", "root", "");
mysql_select_db("diagnostique", $dp);
$sql = "SELECT Ens, pb, solution FROM diagnostique WHERE Npb='$x'";
$requete = mysql_query( $sql);
$result = mysql_fetch_array( $requete );
{
echo $result['Ens'];
echo $result['pb'];
echo $result['solution'];
}
mysql_close($dp);
}
?>
J aimerai savoir ou le bas blesse et comment ameliorer tout sa

Merci d'avance pour vos futur reponse

6 réponses

Bul3
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
13
4 déc. 2009 à 16:43
>>lorsque je souhaite faire un deuxieme manip je n accumule
>>pas les donnees dans le formulaire principale, j'ecrase
>>les données précédentes.
ça dépend du traitement fait lors des réponses d'ajax.
par exemple
...innerHTML=réponse d'ajax va écraser
...innerHTML+=réponse d'ajax va ajouter
3
Bul3
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
13
1 déc. 2009 à 14:13
Bonjour,
quelques erreurs dans ce que vous nous montrez...



<script>
function ajout_input10()
{	var xhr_object = new XMLHttpRequest();
var i=0;
xhr_object.open("GET","pickup.php?i="+i, true);
xhr_object.onreadystatechange = function() 
{	if(xhr_object.readyState == 4)
{	leselect = xhr_object.responseText;
document.getElementById("inputs10").innerHTML += leselect+"\n"+"
";
document.getElementById("inputs10").style.backgroundColor="CCFFFF";
}
}
xhr_object.send(null);
}
ajout_input10();
</script>


_ i n'est pas défini,
_ pas sur que votre xhr_object soit correct,
car déjà new XMLHttpRequest() pour IE8 c'est ok
donc pas testé, et j'ai simplifié au maximum
_>>if(xhr_object.readyState 4 && xhr_object.status 200)
euh....
on peut avoir des status != 200
if(xhr_object.readyState == 4 )
{ if ( xhr_object.status == 200)
{ ....
_ leselect("\n","
");
erreur de syntaxe ça...
_ sans préjuger du php qu'on ne peut pas tester
sans avoir la base de données....
mais en faisant pour le test
<?php echo $_GET['i']; ?>

ça va un peu mieux
Cordialement [mon Site] [M'écrire] Bul
0
cs_voyager
Messages postés
8
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
27 décembre 2010

1 déc. 2009 à 14:37
voyager
Re Bonjour

Effectivement j ai oublier de fournir la totalite des codes donc:

Formulaire

Submit2 correspond a l envoyer

if (isset($_POST['Submit2'])){
$url="http://localhost/Main12.php";
$url.="?n= $Npb";
header("Location:".$url);
}

Page Principale

La dans la page principale je recupere n avec $y
Ensuite i qui est une variable globale prend la valeur de $y

$y ="";
$y=$_GET['n'];
?>

<script type="text/javascript">
var i = '<?php echo $y ; ?>' ;

Toujours dans la page principale on trouve la balise div dans un formulaire
















Le code PHP pickup.php ici on retrouve notre i qui normalement devrait avoir la valeur de n qui avait ete determine dans le formulaire

<?php
$x="";
if ($x=$_GET['i']){
$dp = mysql_connect("localhost", "root", "");
mysql_select_db("diagnostique", $dp);
$sql = "SELECT Ens, pb, solution FROM diagnostique WHERE Npb='$x'";
$requete = mysql_query( $sql);
$result = mysql_fetch_array( $requete );
{
echo $result['Ens'];
echo $result['pb'];
echo $result['solution'];
}
mysql_close($dp);
}
?>
Donc voila j espere etre clair si il y a d autre question no souci

Merci
0
cs_voyager
Messages postés
8
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
27 décembre 2010

1 déc. 2009 à 14:41
voyager
Pardon j en ai oublier encore une autre partie dans la page principale on trouve aussi
if ($heure == ("10:00")){
echo '';
} else {
echo '';
}
Si qui permet d appeler les fonctions en fonction des heures

Merci d avance encore pour vos reponses
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bul3
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
13
1 déc. 2009 à 14:44
certes, certs, mais déjà l'extrait fourni
ne pouvais pas fonctionner
faites donc les modifs indiquées
avant qu'on aille plus loin... si nécessaire
0
cs_voyager
Messages postés
8
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
27 décembre 2010

4 déc. 2009 à 16:26
voyager

Bonjour,

Je vous remercie pour le code que vous m'avez fourni j'ai retravailler le mien en prenant en compte le votre et cela fonction. Malheureusement je n'arrive toujours pas au resultat escompter qui est:

De pouvoir conserver les variables dans mon formulaire.

1)J appel un formulaire de la page principale
2)Je le rempli
3)J'envoie
4)Retour sur la page principale avec donc:
les donnees de la base dans la div
5)Mais lorsque je souhaite faire un deuxieme manip je n accumule pas les donnees dans le formulaire principale, j'ecrase les donnees precedente.

Si toutefois vous auriez un idee elle serait la bienvenue. Bon peut etre que j'ai loupe quelque chose lorsque j'ai fait mes essais avec les variable de session.

Merci d'avance pour vos reponse si il necessaire de fournir d autre chose pas de soucis
0