• Home
  • Forum
  • Fare Web
  • Javascript

div traggabile

  • Creatore Discussione Creatore Discussione valentini
  • Data di inizio Data di inizio 26 Mar 2013
V

valentini

Nuovo Utente
20 Gen 2007
10
0
1
  • 26 Mar 2013
  • #1
Veniamo alla prima richiesta:
Ho creato un menu utilizzando div draggabili in modo da formare una serie di boxes nello schermo le quali contengono ciascuna una voce di menu
I boxis sono spostabili nello schermo per cui ogni utente, che puo accedere aolo se autorizzato, puo organizzarsi i menu come meglio crede.
Il problema è che ogni volta che ricarico la pagine l'eventuale personalizzazione va a farsi benedire dato che tutto ritorna alla posizione di origine.

Non sono riuscito a fare in modo che il sistema mi comunichi la posizione finale del box che sposto in modo da poter memorizzare dette posizioni in una tabella mysql per fare si che ogni utente, in tutu, possa ritrovare la propria pagina personalizzata.

Ho il sospetto che tutto sia possibile con javascript ma non ho assolutamente idea di come si possa fare.

In sostanza:
1 - Come si fa, in javascript, a rilevare le coordinate top e left di un box dopo che questo è stato posizionato nel video?
2 - come si fa a fare in modo che questi due dati possano essere memorizzati in un form per essere inviati ad una pagina che provveda alla loro registrazione in una tabella?

Grazie a tutti (per ora)

Valentini

PS. scusate l'errore nel titolo ma mi è scappato il dito!......
 
Ultima modifica: 26 Mar 2013

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 26 Mar 2013
  • #2
ciao
ti ho spostato inella sez, javascript
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 27 Mar 2013
  • #3
Ciao, immagino che per il draggable tu abbia usato jquery
prova questo esempio
HTML:
<style type="text/css">
    .drag {
        width: 200px;
        height: 200px;
        background-color: red;
        position: absolute;
    }
</style>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/jquery-ui.min.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $('.drag').draggable();
        
        $('.drag').mouseup(function() {
            var position = $('.drag').position();
            alert(("left: " + position.left + ", top: " + position.top ));
        })
        
    });
</script> 
<div class="drag"></div>
al posto dell'alert potresti richiamare una pagina php con ajax che si occupera di memorizzare la posizione
 
V

valentini

Nuovo Utente
20 Gen 2007
10
0
1
  • 28 Mar 2013
  • #4
criric ha scritto:
Ciao, immagino che per il draggable tu abbia usato jquery
prova questo esempio
HTML:
<style type="text/css">
    .drag {
        width: 200px;
        height: 200px;
        background-color: red;
        position: absolute;
    }
</style>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/jquery-ui.min.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $('.drag').draggable();
        
        $('.drag').mouseup(function() {
            var position = $('.drag').position();
            alert(("left: " + position.left + ", top: " + position.top ));
        })
        
    });
</script> 
<div class="drag"></div>
al posto dell'alert potresti richiamare una pagina php con ajax che si occupera di memorizzare la posizione
Clicca per allargare...

Ei,come si dice,qui casca l'asino!
Io di javascript o di ajax sono alle prime armi per cui non riesco a trovare la formula giusta!...
Mi daresti una aiutino ancora
Grazie
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 28 Mar 2013
  • #5
non avendo a portata il tuo codice continuo con il mio
pagina html
HTML:
<style type="text/css">
    .drag {
        width: 200px;
        height: 200px;
        background-color: red;
        position: absolute;
    }
</style>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/jquery-ui.min.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $('.drag').draggable();
        
        $('.drag').mouseup(function() {
            var position = $('.drag').position();            
            $.ajax({
                type: "POST",
                url: "memorizza.php",
                data: "top=" + position.top + "&left=" + position.left
                
            }); 
        })
        
    });
</script> 
<div class="drag"></div>
ho inserito una chiamata ajax in POST che richiama la pagina memorizza.php dove inserireai qualcosa simile a questo
PHP:
<?php

session_start();
include_once 'connessione.php';

$query = "INSERT INTO boxPosition 
                 SET utente = " . $_SESSION['idUtente'] . ",
                     ptop = '" . $_POST['top'] . "',
                     pleft = '" . $_POST['left'] . "'";
$result = mysqli_query($conn, $query);

?>
non è difficile
 
V

valentini

Nuovo Utente
20 Gen 2007
10
0
1
  • 28 Mar 2013
  • #6
criric ha scritto:
non avendo a portata il tuo codice continuo con il mio
pagina html
HTML:
<style type="text/css">
    .drag {
        width: 200px;
        height: 200px;
        background-color: red;
        position: absolute;
    }
</style>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/jquery-ui.min.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $('.drag').draggable();
        
        $('.drag').mouseup(function() {
            var position = $('.drag').position();            
            $.ajax({
                type: "POST",
                url: "memorizza.php",
                data: "top=" + position.top + "&left=" + position.left
                
            }); 
        })
        
    });
</script> 
<div class="drag"></div>
ho inserito una chiamata ajax in POST che richiama la pagina memorizza.php dove inserireai qualcosa simile a questo
PHP:
<?php

session_start();
include_once 'connessione.php';

$query = "INSERT INTO boxPosition 
                 SET utente = " . $_SESSION['idUtente'] . ",
                     ptop = '" . $_POST['top'] . "',
                     pleft = '" . $_POST['left'] . "'";
$result = mysqli_query($conn, $query);

?>
non è difficile
Clicca per allargare...

Grazie!
Hai ragione non è difficile!..... basta conoscere Ajax!
Comunque credo di esserci ciao
 
V

valentini

Nuovo Utente
20 Gen 2007
10
0
1
  • 31 Mar 2013
  • #7
valentini ha scritto:
Grazie!
Hai ragione non è difficile!..... basta conoscere Ajax!
Comunque credo di esserci ciao
Clicca per allargare...

Dunque.... eccomi di nuovo!
Chiedo scusa se continuoa disturbare ma la cosa è specialmente per informazione (e una aiuto anche nella soluzione).
lo script che mi è stato suggerito funziona alla perfezione! C'è solo un piccolo problema che rende difficile il suo utilizzo, almeno per lo scopo per cui intendo usarlo.
Lo script, infatti, rileva al posizione RELATIVA rispetto alla posizione precedente. I dati da esso generati (position.lef e position.top) non sono direttamente utilizzabili e quindi presi e registrati in una tabella mysql per cui il programma li riutilizza senza problemi fissando la DIV di riferimento nella posizione nella quale era stata portata col mopuse, ma hanno bisogno di un'ulteriore elaborazione (occorre leggere la tabella, estrarre i dati di posizione originale, sommare i punti di posizioe relativa e ricopiare gli stessi nella tabella.
Questa operazione crea un ulteriore problema in quanto dato che le variabili di sistema &_GET[] non sono azzerabili, ogni volta che viene ripetuto il ciglo la pagina ritrova i dati e li risomma a quelli preesistenti (gia aggironati) spostando continuamente la DIV nello schermo (Tieni conto che ioho ben 30 div da tenere sotto controllo!)
Occorrerebbe modificare lo script in modo che rilevi NON la posizione relativa (a partire dalla posizione precedente della stessa) a la posizione assoluta (la posizione rispetto all'angolo in alto a sinistra dello schermo) in questo modo a ogni ciglo, se non ci sono stati spostamenti, il programma rileva i dati precedenti e li sostituisce a quelli preesistenti nella tabella non provocando alcun aggiornamento di fatto.
Ecco ringrazio ancora e saluto cordialmente tutti coloro che leggono queste poche righe
Approfitto per auguruare a tutti i frequentatori del forum un cordiale BUONA PASQUA!
alentini
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 31 Mar 2013
  • #8
non è cosi:
lo script rileva la posizione ASSOLUTA quindi a partire dall'angolo in altro a sinistra della pagina
come indicato anche nel css
Codice:
position: absolute;
provalo cosi
PHP:
<style type="text/css">
    .drag {
        width: 200px;
        height: 200px;
        background-color: red;
        position: absolute;
    }
</style>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/jquery-ui.min.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $('.drag').draggable();
        
        $('.drag').mouseup(function() {
            var position = $('.drag').position();   
            document.getElementById('position').innerHTML = "top: " + position.top + "px - left: " + position.left + "px";
        })
        
    });
</script> 
<div id="position"></div>
<div class="drag"></div>
forse nel ciclo che fai ti sfugge qualche particolare
 
V

valentini

Nuovo Utente
20 Gen 2007
10
0
1
  • 1 Apr 2013
  • #9
criric ha scritto:
non è cosi:
lo script rileva la posizione ASSOLUTA quindi a partire dall'angolo in altro a sinistra della pagina
come indicato anche nel css
Codice:
position: absolute;
provalo cosi
PHP:
<style type="text/css">
    .drag {
        width: 200px;
        height: 200px;
        background-color: red;
        position: absolute;
    }
</style>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/jquery-ui.min.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $('.drag').draggable();
        
        $('.drag').mouseup(function() {
            var position = $('.drag').position();   
            document.getElementById('position').innerHTML = "top: " + position.top + "px - left: " + position.left + "px";
        })
        
    });
</script> 
<div id="position"></div>
<div class="drag"></div>
forse nel ciclo che fai ti sfugge qualche particolare
Clicca per allargare...


Credo di aver risolto sostituendo .position() con .offset()
in questo caso mi fornisce la posizione (left e top) relativa all'angolo in alto a sinistra dellos chermo e mi consente di soddisfare le mie esigenze
Grazie comunque sei stato di grande aiuto.
Buona Pasqua anche se in ritardo
 
Devi accedere o registrarti per poter rispondere.

Discussioni simili

E
Creare un testo trasparente dietro un div
  • enzo_88
  • 13 Set 2023
  • HTML e CSS
Risposte
5
Visite
3K
HTML e CSS 17 Set 2023
WmbertSea
F
Div position: fixed si deve fermare quando raggiunge un altro div, oppure deve scomparire. Soluzioni?
  • fede12
  • 23 Nov 2022
  • Javascript
Risposte
0
Visite
717
Javascript 23 Nov 2022
fede12
F
M
Accordion menu e posizione div
  • miagy
  • 29 Ago 2022
  • HTML e CSS
Risposte
0
Visite
1K
HTML e CSS 29 Ago 2022
miagy
M
P
jquery refresh div non funziona
  • psicona
  • 6 Feb 2022
  • Javascript
Risposte
0
Visite
1K
Javascript 6 Feb 2022
psicona
P
P
refresh div + scrittura/lettura dal db
  • psicona
  • 29 Gen 2022
  • Javascript
Risposte
1
Visite
907
Javascript 30 Gen 2022
marino51
  • Bloccata
div centrato alla pagina posto sopra ai contenuti
  • napuleone
  • 8 Gen 2022
  • HTML e CSS
Risposte
1
Visite
2K
HTML e CSS 9 Gen 2022
Max 1
M
Unire 2 funzioni per l'invio di un form e con l'apertura di un div
  • maxnegri2036
  • 11 Dic 2021
  • Javascript
Risposte
0
Visite
2K
Javascript 11 Dic 2021
maxnegri2036
M
Nascondere div di default
  • Cosina
  • 9 Ago 2021
  • jQuery
Risposte
2
Visite
3K
jQuery 24 Ago 2021
Cosina
modificare il contenitore di un div
  • napuleone
  • 9 Gen 2021
  • Javascript
Risposte
2
Visite
1K
Javascript 9 Gen 2021
napuleone
  • Bloccata
modificare il contenitore di un div
  • napuleone
  • 9 Gen 2021
  • Javascript
Risposte
1
Visite
976
Javascript 9 Gen 2021
Max 1
A
inserire variabile php colore in div html
  • AndreaCerre
  • 26 Nov 2020
  • PHP
Risposte
2
Visite
2K
PHP 26 Nov 2020
AndreaCerre
A
J
Far comparire e scomparire un div con un select
  • Jacob88
  • 23 Mag 2020
  • Javascript
Risposte
1
Visite
3K
Javascript 23 Mag 2020
Max 1
T
Far sparire dalla pagina div che saranno inseriti successivamente
  • the_indios
  • 20 Mar 2020
  • jQuery
Risposte
0
Visite
3K
jQuery 20 Mar 2020
the_indios
T
E
Div che scompare con scroll jquery
  • enzo7903
  • 27 Feb 2020
  • Javascript
Risposte
0
Visite
1K
Javascript 27 Feb 2020
enzo7903
E
G
Aiuto HTML, collegamento con un bottone a una <div> di un' altra pagna
  • g3direct
  • 16 Dic 2019
  • HTML e CSS
Risposte
5
Visite
3K
HTML e CSS 17 Dic 2019
Max 1
Creazione di un div con php o js
  • Stefano Migotto
  • 21 Nov 2019
  • PHP
Risposte
9
Visite
3K
PHP 22 Nov 2019
Tommy03
Bootstrap alert: usare lo stesso div per due messaggi consecutivi
  • felino
  • 1 Ago 2019
  • jQuery
Risposte
1
Visite
2K
jQuery 23 Ott 2019
MarcoGrazia
S
Visibilità div in PHP
  • samurai.sette
  • 3 Mag 2019
  • PHP
Risposte
1
Visite
1K
PHP 3 Mag 2019
otto9due
L
[Javascript]Scorrere div con frecce avanti-indietro
  • lazlo
  • 20 Apr 2019
  • Javascript
Risposte
0
Visite
2K
Javascript 20 Apr 2019
lazlo
L
P
[Javascript] Aprire Link in Div e pagina Dinamica
  • pianeta0
  • 1 Apr 2019
  • Javascript
Risposte
0
Visite
2K
Javascript 1 Apr 2019
pianeta0
P
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • Javascript
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?