[ajax][methode post] intéragir avec le serveur

0/5 (3 avis)

Snippet vu 5 244 fois - Téléchargée 17 fois

Contenu du snippet

À quoi sert ce script ?
- Envoyer et recevoir de l'information au server
- Éviter les doublures
- (Et donc d')Alléger le code
Comment ?
Tout d'abord...
- Inserez...
"function post(url, arrayAttribute, arrayValue){
sending = "";
for(i=0;i!=arrayAttribute.length;i++){
if(i==0){sending = sending+arrayAttribute[i]+"="+arrayValue[i];
}else{sending = sending+"&"+arrayAttribute[i]+"="+arrayValue[i];}
}
...
request(readData);
}"
Dans head entre des balise script (<script></script>)
- Créez un fichier php qui servira de récepteur/répondeur avec...
post(url, arrayAttribute, arrayValue)
"header("Content-Type: text/plain");
$attribue = (isset($_POST["attribue"])) ? $_POST["attribue"] : NULL;
if($attribue){
echo "reçu !";
}else{
echo "échoué";
}"

L'installation est finis !
Comment l'utiliser

Par exemple pour un chat avec jQuery...

Dans html...
<form onSubmit="return false; post(poster.php, Array(message), array($(".itcm").val())) ">
<input type="text" name="message" class="itcm">
<input type="button" value="envoyer">
</form>

Dans php...
header("Content-Type: text/plain");
$message = (isset($_POST["message"])) ? $_POST["message"] : NULL;
$ip = $_SERVER["REMOTE_ADDR"].":".$REMOTE_PORT;
$date=date("d/m/Y à H\hi");
if($message){
echo "message reçu !";
//... Après du pdo ou msql et le tour est joué !
}else{
echo "message perdu !";
}

--------------------------IMPORTANT
Ce script n'est plus utile jQuery gère déjà l'ajax : voir jQuery.post() -> http://api.jquery.com/jQuery.post/

Source / Exemple :


[JAVASCRIPT]

function post(url, arrayAttribute, arrayValue){
	sending = "";
	for(i=0;i!=arrayAttribute.length;i++){
		if(i==0){sending = sending+arrayAttribute[i]+"="+arrayValue[i];
		}else{sending = sending+"&"+arrayAttribute[i]+"="+arrayValue[i];}
	}
	function getXMLHttpRequest(){var xhr = null;if (window.XMLHttpRequest || window.ActiveXObject){if (window.ActiveXObject){try{xhr = new ActiveXObject("Msxml2.XMLHTTP");}catch(e){xhr = new ActiveXObject("Microsoft.XMLHTTP");}}else{xhr = new XMLHttpRequest();}}else{alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");return null;}return xhr;}
	function request(callback) {
		var xhr = getXMLHttpRequest();
		xhr.onreadystatechange = function(){
			if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)){callback(xhr.responseText);}
		};
		xhr.open("POST", url, true);
		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xhr.send(sending);
	}
	function readData(sData){return sData;}
	request(readData);
}

[PHP]

header("Content-Type: text/plain");
$attribue = (isset($_POST["attribue"])) ? $_POST["attribue"] : NULL;
if($attribue){
echo "reçu !";
}else{
echo "échoué";
}

Conclusion :


[AJAX] Intéragir avec le serveur
Son fonctionnement...
Le script envoie de cette façon :
exemple : post("action.php", Array("message", "date", "ip"), Array("salut!", "19/02/13", "192.168.1.1"));
le script envoie à action.php en methode post : message=salut! & date=19/02/13 & ip=192.168.1.1
Arrtibut
url = l'url du fichier php
arrayAttribute = tableau avec les attributs
arrayValue = tableau avec les valeurs

A voir également

Ajouter un commentaire Commentaires
MacGaliver Messages postés 146 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 21 juillet 2013 3
31 mai 2013 à 14:45
Bonjour,

Cela est bien pour ceux qui ont des problèmes de sécurité avec leurs requêtes $_POST.
Autrement ça marche pas ^^.

Cordialement.
cs_claude77260 Messages postés 54 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 8 avril 2013
20 mai 2013 à 12:07
Bonjour,

merci d'avoir tenu compte de mon commentaire et d'avoir expliqué le script
désolé pour le retard, mais je n'ai pas reçu de notification de message de javascriptfr.

je vais étudier cela dés que possible

à+
cs_claude77260 Messages postés 54 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 8 avril 2013
8 avril 2013 à 10:37
bonjour

beaucoup de visites, pas de chargement, il faut se poser des questions ??

certainement un manque d'explication

à quoi çà sert ?? pour les novices de l'ajax c'est pas évident

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.