ciao gente.
non sono ben sicuro di come agire.
mi servirebbe rilevare la posizione di un DIV e con le properità left e top fare delle cose in uno script php.
non ho idea di come fare però
mi sapreste dare un consiglio?
ciao gente.
non sono ben sicuro di come agire.
mi servirebbe rilevare la posizione di un DIV e con le properità left e top fare delle cose in uno script php.
non ho idea di come fare però
mi sapreste dare un consiglio?
Utilizza JS per ottenere le info sul DIV e poi invia i dati a PHP tramite Javascript (es. form submit, location.href) oppure con Ajax.
eh un elemento che mi è oscuro è come rilevare left e top del divOriginariamente inviato da filippo.toso
Utilizza JS per ottenere le info sul DIV e poi invia i dati a PHP tramite Javascript (es. form submit, location.href) oppure con Ajax.
edit: ma la cosa che mi lascia interdetto è come passare allo script php i valori ottentui
Fondamentalmente si tratta di recuperare i dati del css con uno script js del tipo :
nella pagina puoi usare questa funz dove ti serve poniamo caso su un anchor std.Codice PHP:
function getLeft( id )
{
//recupero il nodo dal document tree
elem = document.getElementById(id)
// controlliamo che esista
if(elem)
{
// la chiamata resitiusce tipo 12px elimino i caratteri "px"
return elem.style.left.replace(/px/g , "" );
}
return "";
}
function getTop( id )
{
//recupero il nodo dal document tree
elem = document.getElementById(id)
// controlliamo che esista
if(elem)
{
// la chiamata resitiusce tipo 12px elimino i caratteri "px"
return elem.style.top.replace(/px/g , "" );
}
return "";
}
/*
a questo pto abbiamo 2 funct js che ci diranno le top e left del div in questione per passarle a php devi usare un altra funzione che invii i dati al server e allo script/pagina php in questione.
*/
function forwarder( url , id )
{
location.href(url+"?left="+getLeft(id)+"&top="getTop(id) );
}
Invia dati
lato server intercettiamo i valori con :
E questo e' tutto.Codice PHP:
<?
foreach($_GET as $n=>$v)
$$n= $v;
echo $left." - ".$top;
oppure
echo $_GET['left']." - ".$_GET['top'];
?>
intanto grazie.
ho provato ad inserire la funzione nell'evento onload del body, ma ricevo un errore: location.href is not a function...
e mi rimane oscuro il commento:che devo scriverci nella pagina "script" che deve poi reinviare i dati alla pagina principale??"per passarle a php devi usare un altra funzione che invii i dati al server e allo script/pagina php in questione"![]()
mi sto seriamente confondendo!
anche eprchè: se l'elemento ancora non è stato creato? a me serve una cosa istantanea e "silenziosa", non voglio che l'utente clicchi, dev'essere automatico, per cui mi serve di poter ricavare queste info al caricamento della pagina...
Innanzitutto chiedo scusa locationa.href e' un attributo non un metodo mi son confuso.
per cui per effetturare il redirect devi fare sta modifica alla funz forwarder
cosi' dovrebbe andare.Codice PHP:
function forwarder( url , id )
{
location.href = url+"?left="+getLeft(id)+"&top="getTop(id) ;
}
Per quanto riguarda l'ntercettamento dei valori che stai mandando :
quello che nn capisco e' cosa ci devi fare a sto punto, se piazzo ste righe php nel "modo:1" poi nella pagina hai le 2 var "left" e "top" che pui riusare come dove e quando vuoi.Codice PHP:
la url bersaglio deve contenere sta roba
<?
// Lettura dati modo :1
foreach($_GET as $n=>$v)
$$n= $v;
echo $left." - ".$top;
// Lettura dati modo : 2
echo $_GET['left']." - ".$_GET['top'];
//scegli te cosa usare sai cmq che le var $_GET[left] e $_GET[top] tengono i valori del div.
?>
il metodo location.href non è corretto.
ho visto che si deve usare window.location
i valori li devo ricavare per riposizionare dei div le cui coordinate sono memorizzate su db
allora guarda qua ho controllato un attimo
era un errorino di sintassi alla fine
nell'html devi fare una cosa del genereCodice PHP:
function forwarder( url , id )
{
p = "left="+getLeft(id)+"&top="+getTop(id);
location.href = url+"?"+p ;
}
asdsad
php_script.php e' il file bersaglio
id e' l'id del div di cui devi caricare i valori top-left
il file php semplicemente prende le var con $_GET[left] $_GET[top] e poi te le gestisci come vuoi.
Ci sono 2 modi per fare il redirect in javascript, uno è come dice Virus_101, in questo caso se premi il bottone back ritorni alla pagina in cui hai lanciato il redirect, se invece vuoi che non rimanga nell'history la pagina che stai visualizzando prima del redirect allora puoi usare :
codice:location.replace(url);![]()
in realtà l'errorino 1 era che mancava un + nella stringa, ma mi sono documentato online e ho trovato diversi siti che considerano errato l'uso del location.href, forse anche per la sua incompatibilità.
tutti dicono di usare window.location.
cmq in un modo o nell'altro, diciamo che sono riuscito a ricavare le proprietà.
perchè in effetti ci sono riuscito usando lo script iniziale che mi avevi consigliato e poi l'ho corretto secondo quanto detto sopra.
in realtà non funzionava COMUNQUE mettendo la funzione nell'onload del body, perchè penso al load del body, l'oggetto div non è ancora esistente.
forse si dovrebbe provare a fare una funzione ricorsiva che di prepotenza prova a cercare quell'id finchè non lo trova, magari potresti darmi un suggerimento?
al momento il caricamento è diviso in due tranche: prima viene caricata la pagina fino al link cliccabile, così viene generato anche il div interessato.
al click su link tutto funge ed il resto della pagina viene completata.
in eraltà vorrei evitare questa "pausa" e l'interazione con l'utente e preferirei iterare la ricerca dell'oggetto e fare tutto in automatico...