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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 178 fois - Téléchargée 14 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
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

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

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.