cs_lionel
Messages postés6Date d'inscriptionvendredi 15 février 2002StatutMembreDernière intervention22 mars 2002
-
21 mars 2002 à 11:33
neoprg
Messages postés8Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention16 avril 2002
-
22 mars 2002 à 19:12
Bonjour!!
j'ai fais un menu qui se modifie grace a un script de drag'n drop et je voudrai pouvoir enregistrer c'est modif dans la base!
Donc si qlq1 peu me repondre!
<SCRIPT LANGUAGE="JavaScript">
/* static object points to drag object if we are dragging */
var dragObject;
var X, Y;
function Document_OnMouseDown(e) {
/* try to find a parent element that is a TR tag and is marked dragable */
var element=window.event.srcElement;
while (element && (element.nodeName!="tr") && (element.drag!="enable")) {
if (element.drag=="inhibit") return;
element=element.parentElement;
}
/* if element found, enter drag mode */
if (element) {
/* find the parent table */
var parentTable = element;
while (parentTable && (parentTable.nodeName!="TABLE"))
parentTable = parentTable.parentElement;
if (!parentTable) { alert("cant find the parent TABLE!"); return }
/* create the div object we will drag */
dragObject = document.createElement("DIV");
dragObject.style.position = "absolute";
dragObject.style.pixelLeft = event.clientX;
dragObject.style.pixelTop = event.clientY;
/* save a reference to the dragging rows parent */
dragObject.parentTable = parentTable;
dragObject.dragRow = element;
/* save reference to the TR at which we just left in case user instantly drops the row */
dragObject.insertMarker = document.createElement("DIV");
dragObject.insertMarker.insertPoint = element.nextSibling;
dragObject.insertMarker.insertBody = element.parentElement;
/* create the table element within the div tag and set its
properties equal to dragging rows parent table */
var eTable = document.createElement("TABLE");
eTable.style.width = parentTable.offsetWidth;
eTable.border = parentTable.border;
eTable.cellpadding = parentTable.cellpadding;
eTable.cellspacing = parentTable.cellspacing;
/* add the TR tag to the drag object and save a reference to it */
var tBody = eTable.appendChild( document.createElement("tBODY"));
var eRow = tBody.insertRow()
eRow.replaceNode(element);
dragObject.appendChild(eTable);
/* shrink the row for dragging */
dragObject.style.zoom = "0.6";
/* add div tag to document */
document.body.appendChild(dragObject);
/* store the x and y position the mouse down event happened at within the drag Object */
X=event.offsetX;
Y=event.offsetY;
}
}
function Document_OnMouseMove(e) {
if (dragObject) {
/* update the dragging cell */
dragObject.style.pixelLeft = event.clientX + document.body.scrollLeft+5;
dragObject.style.pixelTop = event.clientY + document.body.scrollTop+5;
/* remove any old insert marker */
if (dragObject.insertMarker)
dragObject.insertMarker.removeNode(true);
/* find out if we are hovering over a tr cell */
element = window.event.srcElement;
while (element && (element.nodeName!="tr") && (element.drag!="enable")) {
if (element.drag=="inhibit") return;
element=element.parentElement;
}
/* draw a red line snapped to the row insert position */
if (element) {
/* create the div object we will drag */
var insertMarker = document.createElement("DIV");
insertMarker.style.position = "absolute";
/* mark the TR at which the marker is referencing */
insertMarker.insertPoint = element;
insertMarker.insertBody = element.parentElement;
/* set the html inside the insert marker */
//insertMarker.innerHTML = ", ,
";
/* Pour descendre la ligne */
if (event.clientY-insertMarker.style.pixelTop > element.offsetHeight/2) {
insertMarker.style.pixelTop += element.offsetHeight;
insertMarker.insertPoint = element.nextSibling;
}
/* add the insert marker to the document */
dragObject.insertMarker = document.body.appendChild(insertMarker);
}
return false;
}
}
function Document_OnMouseUp() {
if (dragObject) {
/* delete the drag object */
dragObject.removeNode(true)
/* insert at the point at which the marker is */
if (dragObject.insertMarker) {
var afterRow = dragObject.insertMarker.insertPoint;
var newRow = dragObject.insertMarker.insertBody.insertRow(dragObject.insertMarker.insertPoint ? dragObject.insertMarker.insertPoint.rowIndex : -1);
newRow.replaceNode(dragObject.dragRow);
}
/* remove any old insert marker */
if (dragObject.insertMarker)
dragObject.insertMarker.removeNode(true)
<SCRIPT LANGUAGE="JavaScript">
/* static object points to drag object if we are dragging */
var dragObject;
var X, Y;
function Document_OnMouseDown(e) {
/* try to find a parent element that is a TR tag and is marked dragable */
var element=window.event.srcElement;
while (element && (element.nodeName!="tr") && (element.drag!="enable")) {
if (element.drag=="inhibit") return;
element=element.parentElement;
}
/* if element found, enter drag mode */
if (element) {
/* find the parent table */
var parentTable = element;
while (parentTable && (parentTable.nodeName!="TABLE"))
parentTable = parentTable.parentElement;
if (!parentTable) { alert("cant find the parent TABLE!"); return }
/* create the div object we will drag */
dragObject = document.createElement("DIV");
dragObject.style.position = "absolute";
dragObject.style.pixelLeft = event.clientX;
dragObject.style.pixelTop = event.clientY;
/* save a reference to the dragging rows parent */
dragObject.parentTable = parentTable;
dragObject.dragRow = element;
/* save reference to the TR at which we just left in case user instantly drops the row */
dragObject.insertMarker = document.createElement("DIV");
dragObject.insertMarker.insertPoint = element.nextSibling;
dragObject.insertMarker.insertBody = element.parentElement;
/* create the table element within the div tag and set its
properties equal to dragging rows parent table */
var eTable = document.createElement("TABLE");
eTable.style.width = parentTable.offsetWidth;
eTable.border = parentTable.border;
eTable.cellpadding = parentTable.cellpadding;
eTable.cellspacing = parentTable.cellspacing;
/* add the TR tag to the drag object and save a reference to it */
var tBody = eTable.appendChild( document.createElement("tBODY"));
var eRow = tBody.insertRow()
eRow.replaceNode(element);
dragObject.appendChild(eTable);
/* shrink the row for dragging */
dragObject.style.zoom = "0.6";
/* add div tag to document */
document.body.appendChild(dragObject);
/* store the x and y position the mouse down event happened at within the drag Object */
X=event.offsetX;
Y=event.offsetY;
}
}
function Document_OnMouseMove(e) {
if (dragObject) {
/* update the dragging cell */
dragObject.style.pixelLeft = event.clientX + document.body.scrollLeft+5;
dragObject.style.pixelTop = event.clientY + document.body.scrollTop+5;
/* remove any old insert marker */
if (dragObject.insertMarker)
dragObject.insertMarker.removeNode(true);
/* find out if we are hovering over a tr cell */
element = window.event.srcElement;
while (element && (element.nodeName!="tr") && (element.drag!="enable")) {
if (element.drag=="inhibit") return;
element=element.parentElement;
}
/* draw a red line snapped to the row insert position */
if (element) {
/* create the div object we will drag */
var insertMarker = document.createElement("DIV");
insertMarker.style.position = "absolute";
/* mark the TR at which the marker is referencing */
insertMarker.insertPoint = element;
insertMarker.insertBody = element.parentElement;
/* set the html inside the insert marker */
//insertMarker.innerHTML = ", ,
";
/* Pour descendre la ligne */
if (event.clientY-insertMarker.style.pixelTop > element.offsetHeight/2) {
insertMarker.style.pixelTop += element.offsetHeight;
insertMarker.insertPoint = element.nextSibling;
}
/* add the insert marker to the document */
dragObject.insertMarker = document.body.appendChild(insertMarker);
}
return false;
}
}
function Document_OnMouseUp() {
if (dragObject) {
/* delete the drag object */
dragObject.removeNode(true)
/* insert at the point at which the marker is */
if (dragObject.insertMarker) {
var afterRow = dragObject.insertMarker.insertPoint;
var newRow = dragObject.insertMarker.insertBody.insertRow(dragObject.insertMarker.insertPoint ? dragObject.insertMarker.insertPoint.rowIndex : -1);
newRow.replaceNode(dragObject.dragRow);
}
/* remove any old insert marker */
if (dragObject.insertMarker)
dragObject.insertMarker.removeNode(true)
neoprg
Messages postés8Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention16 avril 2002 21 mars 2002 à 16:29
Heuuu attends,
Déjà, ce que tu veux faire suppose que tu passes par un serveur HTTP puis, que sur ce serveur tu as un moteur de base de données : Jet par exemple.
Donc, il faut que ta page soit un script ASP ou PHP (selon les caractèristiques de ton serveur). Tu pourras alors déclencher un relaod de ta page à l'événement drag on drop en passant à ta page les informations que tu veux stocker dans la base.
Ok, c'est dans tes schémas ? :-))
Si oui, on continue ...
Dis moi tout ;-)
a++
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_lionel
Messages postés6Date d'inscriptionvendredi 15 février 2002StatutMembreDernière intervention22 mars 2002 21 mars 2002 à 16:52
ok!
pour info:
je tourne sous iis, sql server
ma page est une page jsp.
J'arrive a recuperer les données de la page jsp dans le javascript, ce que je cherche a faire c'est soit que le javacript ce connecte directement a la base et fais l'update ou qu'il me lance une servlet qui me fera le traitement!
le javacript peu me permetre de tel traitement????
neoprg
Messages postés8Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention16 avril 2002 21 mars 2002 à 18:15
Ouuuula, javascript sur le poste client est réduit du fait de la sécurité des navigateurs et du deal-up limité qu'il peut faire avec un serveur.
Deux solution s'offrent à toi :
C'est ton jsp qui enregistre les data dans la base ... mais tu vas me dire : recharger la page à chaque fois !!!! baaaa caca ... vivivi
Une autre solution consisterait à créé une applet qui s'occupe d'enregistrer les datas dans la base. Java et javascript communique bien dans un browser.
Bon c'est un peu simpliste mais tu peux voir qu'on peux faire discuter ds un browser le javascript et une applet ... puis que ton applet accéde à la base de données pour enregistrer les datas, directement.
Certe, il faut voir le problème des règles de sécurité, surtout cotè server.