Code : Tout sélectionner
CREATE TABLE `membre` (
`login` varchar(20) collate latin1_general_ci NOT NULL,
`equipe` varchar(20) collate latin1_general_ci NOT NULL,
PRIMARY KEY (`login`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
<?php
include('../bzw.php');
$connexion = mysql_connect($host,$user,$password) or die("connexion impossible au serveur");
mysql_select_db($database,$connexion) or die("la base de donnée n'a pas pu être ouverte");
$equipe=html_entity_decode($_GET['equipe']);
$login=html_entity_decode($_GET['login']);
$requet="UPDATE membre SET equipe='".mysql_real_escape_string($equipe,$connexion)."' WHERE login='".mysql_real_escape_string($login,$connexion)."'";
$result=mysql_query($requet,$connexion);
if($result) {
echo 'Affectation effectuée'
}
else {
echo 'Affectation non effectuée'
}
?>
<?php
//reçoit 2 paramètres: equipe et login du membre
//print_r($_GET);
$equipe = trim(html_entity_decode($_GET['equipe']));
$login = trim(html_entity_decode($_GET['login']));
if ($equipe && $login && file_exists('../bzw.php')){
include('../bzw.php');
//Affecter le membre à l'équipe
$connexion = mysql_connect($host,$user,$password) or die("connexion impossible au serveur");
mysql_select_db($database,$connexion) or die("la base de donnée n'a pas pu être ouverte");
$requet = "UPDATE membre SET equipe='".mysql_real_escape_string($equipe,$connexion)."' WHERE login='".mysql_real_escape_string($login,$connexion)."'";
$result = mysql_query($requet,$connexion);
//Vérifier si la mise à jour est effectuée
if ($result) {
echo utf8_encode('Affectation effectuée');
exit;
}
}
//Dans tous les cas d'erreur
echo utf8_encode('Affectation non effectuée');
?>
Bien, après avoir tester ce programme sur un navigateur par l'URL de test suivante:
Code : Tout sélectionner
affecter.membre.serveur.php?equipe=e1&login=m1Code : Tout sélectionner
<script>
/**
* Moteur Ajax
*/
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr;
}
/**
* Méthode qui appelle un script serveur et renvoit sa réponse
*
* serveur: l'url du script serveur appelé
* reponse: objet HTML donné par référence à un conteneur HTML de la page chargée
* paramètres: liste des paramètres éventuellement passés au script serveur (param1=valeur1¶m2=valeur2...)
**/
function getByAjax(serveur, reponse, methode, parametres){
var xhr = getXhr(); //Nouvelle instance Ajax
if (xhr && serveur){
// On défini la fonction observant la communication Ajax/serveur
xhr.onreadystatechange = function(){
// le code 4/200: détermine que Ajax a reçu une réponse du serveur
if(xhr.readyState == 4 && xhr.status == 200){
reponse.innerHTML = xhr.responseText; //renvoit la réponse du serveur dans le conteneur reponse
}
}
// Déclenchement de l'appel Ajax/serveur + envoi paramètres POST ou GET
if (methode == "POST"){
xhr.open("POST", serveur, true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send(parametres);
}
else {
xhr.open("GET", serveur+"?"+parametres, true);
xhr.send(null);
}
}
}
</script>
<!-- bouton de test de l'URL -->
<input type="button" value="Tester Ajax" onClick="getByAjax('affecter.membre.serveur.php', document.getElementById('div_reponse'), 'GET', 'equipe=e1&login=m1');">
<!-- Div de réponse Ajax -->
<div id="div_reponse"></div>
Sans doute une bonne adresse mais ici on fait des scripts autonomes avec nos petits doigts qui tapotent sur le clavier.Personnelement j'utiiserais la combinaison prototype.js + scriptaculous qui permet de gerer cela de manière très simple.
Exemple avec un panier : shop
Code : Tout sélectionner
INSERT INTO `membre` (`login`, `equipe`) VALUES
('m1', 'e1'),
('m2', 'e2');Code : Tout sélectionner
<!-- Une équipe -->
<div id='e1' class="equipe"><b>e1</b><hr>
<!-- Un membre -->
<div id='m1' class="membre">m1</div>
</div>
<!-- Une équipe -->
<div id='e2' class="equipe"><b>e2</b><hr>
<!-- Un membre -->
<div id='m2' class="membre">m2</div>
</div>Code : Tout sélectionner
<style>
.equipe {width:200px; height:200px; border: 1px solid #eeeeee; background-image:url(equipe.gif); background-repeat:no-repeat; cursor:pointer; text-align:center; margin:10}
.membre {width:30px; height:30px; line-height:70px; border-style:none; background-image:url(membre.gif); background-repeat:no-repeat; cursor:pointer; ; text-align:center; margin:10}
</style>Code : Tout sélectionner
<div id='m1' onMouseDown="selectMembre(this);" class="membre">m1</div>
Code : Tout sélectionner
<script>
//CODE POUR LE DRAG&DROP
//mémoire globale d'un membre sélectionné
var membre_select = null;
//fonction pour sélectionner le membre pointé = commencement du drag&drop
function selectMembre(membre){
membre_select = membre;
}
</script>