Bonjour à tous,

Je viens d'écrire mon premier script AJAX et plusieurs questions fonctionnelles me sont venues.
J'ai cherché sur le net et je n'ai pas trouvé de réponse directe aussi j'en viens vous voir.

J'utilise jQuery avec lequel je suis assez familier bien que je ne l'avais pas encore utilisé pour ça ( ).

Voilà mon bout de code (les questions suivent ):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$.ajax({
	type: "POST",
	async:false, //default:true
	url: "libs/save.php", //script qui modifie ma bdd
	dataType : 'html',
	processData: false,//evite de convertir l'html ?
	data:  'a=update&id='+id+'&val='+str,
	success: function(data, textStatus, XMLHttpRequest){
		alert('L\'enregistrement a bien eu lieu: '+data);
	},
	error:function(data, textStatus, XMLHttpRequest){
		alert('Erreur lors de l\'enregistrement: '+textStatus);
	}
});

1-Le code étant du javascript, il est accessible à tous les visiteurs. En regardant mon bout de code, tout initié devrait comprendre ce qu'il fait. La première question que je me pose est de savoir ce qui se passe si qqn de l'extérieur appelle le même code, mais en mettant l'adresse absolue du site dans l'url et en entrant les datas qu'il voudra; il pourrait facilement modifier le contenu de ma bdd puisque tout ce fait dans le script php, nan? comment un codeur ajax s'assure que son script php (ou autre) ne sera pas lancé de manière "frauduleuse" lorsqu'il met son code et les structures d'appel à la vue de tous ?

2-la variable str de data est une chaine de caractère contenant du code html provenant d'un éditeur wysiwyg. J'ai souvent vu dans les tutos ajax qu'il fallait soit sérialiser les données (dc inutile dans mon cas puisque string ?: ) ou/et faire un pré-traitement pour la chaine de caractère pour la rendre url friendly (
Code : Sélectionner tout - Visualiser dans une fenêtre à part
str = str.replace("+", "%2B");str=str.replace("/", "%2F");
) pourtant la méthode est POST. Est-ce que vous pouvez me dire si c'est qd même nécessaire et pourquoi? si oui, comment je fais pour ne pas "casser" la structure html de la data str (conserver les chevrons actifs sans htmlspecialchars & co.).

3-En fin, l'appel ajax se fait sur une page affichant des données de ma bdd. Le grand internet du point de vu utilisateur est de ne pas avoir à recharger toute la page en cas de modification. Pouvez-vous me dire comment ne recharger que la partie de la page (<div id="db_content">...</div>) contenant les informations provenant de ma bdd lorsqu'un élément s'en trouve modifié ou effacé (ça se passe dans la partie success de la fonction $.ajax). Jusque là, après effacement, je lance en cas de succès l'appel qui bien sur me recharge toute la page. Je n'ai pas trouvé comment faire ça sur le net.

Voilà, je sais que c'est long aussi merci de m'avoir lu, et plus encore si vous répondez .