Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Prototype & Script.aculo.us
Prototype & Script.aculo.us Forum d'entraide sur les frameworks Prototype et Script.aculo.us
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/06/2008, 11h31   #1
Candidat au titre de Membre du Club
 
Inscription : juin 2008
Messages : 85
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : juin 2008
Messages : 85
Points : 14
Points : 14
Par défaut [Prototype] pb avec le Ajax.request

Bjr ,

je souhaite mettre a jour une page internet en lançant une requete à ma base de donnée, sans passer par le php, mais via Ajax.
Car en passant par le PHP, toute ma page est rechanger, or je souhaite actualiser uniquement mon textarea concerné.

Que dois-je faire ?

D'autre part, lorsque je fais le test, la console d'erreur de Firefox me dit que ma fonction ajax is not defined , pk ?

merci d'avance, pour vos aide.
pwd75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 13h18   #2
Membre éprouvé
 
Avatar de IP-Fix
 
Inscription : mars 2006
Messages : 406
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 406
Points : 433
Points : 433
Envoyer un message via MSN à IP-Fix
Bonjour ,

Il faut que tu passe par une requete ajax , qui je le rapelle se contente de chopper le contenu d'une page (ici une page php par exemple ).

Une fois le contenu récupéré tu pourra remplacer le contenu de ton div ou textarea.

Par contre sans ton code source , dur de t'aider plus ...
IP-Fix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 13h34   #3
Candidat au titre de Membre du Club
 
Inscription : juin 2008
Messages : 85
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : juin 2008
Messages : 85
Points : 14
Points : 14
Oui dsl, voici le code source de ma function ajax

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
function ajax_modify(){
 
//Insertion de div dans les td du tableau afin d'en modifier
var elttrad='divtrad_'+ id;
var eltAction='tradAction_'+ id;
var eltStatut='tradStatut_'+ id;
var eltDate='tradDate_'+ id;
var eltUser='tradUser_'+ id;
 
var container = $(elttrad); //On sélectionne le div qu'on veut éditer
var oldContent = $(elttrad).innerHTML; //On recupere le contenu de la string avant edition
 
var formEdit = new Element ('textarea', {}).update(odlContent);
var newContent = FormContent1.value //On recupere le nouveau contenu
 
var updater = new Ajax.Request('test_mod.php'+getValues,
{
method: 'post',
parameters:{submit_modify:1, IDmodify:id, input_mod_trad:$F('input_mod_trad')},
 
onSuccess: function(transport){
 
if (transport.responseText=='OK'){
 
document.getElementById(elttrad).innerHTML = $F('input_mod_trad');
document.getElementById(eltAction).innerHTML ='<form action=\"<?php echo $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']; ?>\" method=\"POST\" name=\"formreview_'+ id +'\"><input type=\"hidden\" name=\"IDreview\" value=\"'+ id +'\" ><a href=\"javascript:document.formreview_'+ id +'.submit();\" title=\"validate\"><img src=\"img/validate.gif\" /></a></form><a href=\"javascript:form_modify('+ id +');\" id=\"btmodify_'+ id +'\" title=\"modify\"><img src=\"img/edit.gif\" /></a>';
document.getElementById(eltStatut).innerHTML ='To review';
document.getElementById(eltDate).innerHTML = '<?php echo date('m/d/Y'); ?>
document.getElementById(eltUser).innerHTML = '<?php echo $donnees[0]; ?>'; 
}
 
}
 
});
 
}
ici le contenu de ma page php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
 
session_start();
require("config.php");
 
if(isset($_POST['submit_modify'])){
 
$ID_String = $_POST['IDmodify'];
$ID_Lang = $_GET['lang'];
$User = $_SESSION['ID_USER'];
$Text = $_POST['input_mod_trad'];
 
 
$check_trad = mysql_query("SELECT count(ID_String) AS Total, Statuts FROM trad_traductions 
WHERE ID_String = '".$ID_String."' AND ID_Lang = '".$ID_Lang."' GROUP BY ID_String");
 
$row_check = mysql_fetch_object($check_trad);
 
if($row_check->Total != 0) {
 
$nickname = $_SESSION['NICKNAME'];
 
$Date_Now = date("Y-m-d H:i");
 
 
			$mod_trad = mysql_query("UPDATE trad_traductions SET Text = '".$Text."', Statuts = '1', Modification = '".$User."', Date_Modification = '".		       $Date_Now."', Review = '0', Date_Review = '0000-00-00 00:00'
			WHERE ID_String = '".$ID_String."'
			AND ID_Lang = '".$ID_Lang."'");
 
			if ($mod_trad != false){
 
				echo "OK";
				echo $nickname;
 
				}else{
					echo "ERREUR DE LA REQUETE";
				}
 
 
}else{
 
	echo "Translation doesn't exist";
}
 
}
 
 
?>
pwd75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 15h33   #4
Membre éprouvé
 
Avatar de IP-Fix
 
Inscription : mars 2006
Messages : 406
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 406
Points : 433
Points : 433
Envoyer un message via MSN à IP-Fix
Tu utilises un frameworkd javascript comme mootools , jquery , dojo ou autre ?

Si oui faudrais préciser , sinon c'est pas etonnant que sa marche pas ...

En effet

Code :
1
2
3
4
var updater = new Ajax.Request('test_mod.php'+getValues,
{
method: 'post',
//...
Ajax est un objet qui n'est pas connu de base par les navigateurs web mais souvent defini par une des librairie javascript cité ci dessus qu'il faut ajouter a ton site avant ton code (pour definir les objets comme ajax...).

Si tu ne souhaite pas inclure de librairie sur ton site , je te conseil de lire les tutoriels de developpez.com sur ajax et de voir comment il crée un objet XHR pour les différents navigateurs.
IP-Fix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 15h42   #5
Candidat au titre de Membre du Club
 
Inscription : juin 2008
Messages : 85
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : juin 2008
Messages : 85
Points : 14
Points : 14
Oui j'utilise un framework le: prototype.js que j'ai ajouté à mon site

Code :
1
2
3
4
 
 
 
<script language="Javascript" type="text/javascript" src="prototype.js"></script>
pwd75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 15h56   #6
Membre éprouvé
 
Avatar de IP-Fix
 
Inscription : mars 2006
Messages : 406
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 406
Points : 433
Points : 433
Envoyer un message via MSN à IP-Fix
Oki , alors si tu utilise prototype plusieurs choses :

- Utilise $('id') plutot que document.getElementById
- Soit plus propre dans ton code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
var url = 'http://url.com';
var pars = 'empID=' + empID + '&year=' + y; // tes parametre
 
var myAjax = new Ajax.Request(
	url, 
	{
		method: 'get', 
		parameters: pars, 
		onComplete: showResponse
	});
 
function showResponse(ajax)
{
	//traitement du resultat par exemple ...
	$('result').value = ajax.responseText;
}
Par contre j'ai pas le temps de regarder plus en details ton code pour le moment (notamment la partie php ...) . Mais je pense que le site ici :

http://www.sergiopereira.com/articles/prototype.js.html

t'aidera beaucoup.
IP-Fix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 16h05   #7
Candidat au titre de Membre du Club
 
Inscription : juin 2008
Messages : 85
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : juin 2008
Messages : 85
Points : 14
Points : 14
Je te remercie deja pour l'aide que tu m'a apportée
pwd75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h20.


 
 
 
 
Partenaires

Hébergement Web