Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832

    Ricavare posizionamento DIV e elaborare il risultato

    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?

  2. #2
    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.

  3. #3
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832
    Originariamente 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.
    eh un elemento che mi è oscuro è come rilevare left e top del div
    edit: ma la cosa che mi lascia interdetto è come passare allo script php i valori ottentui

  4. #4
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Fondamentalmente si tratta di recuperare i dati del css con uno script js del tipo :

    Codice PHP:

    function getLeftid )
    {
        
    //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/"" );
        }
        return 
    "";
    }


    function 
    getTopid )
    {
        
    //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/"" );
        }
        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 forwarderurl id )
    {
          
    location.href(url+"?left="+getLeft(id)+"&top="getTop(id) );

    nella pagina puoi usare questa funz dove ti serve poniamo caso su un anchor std.
    Invia dati

    lato server intercettiamo i valori con :

    Codice PHP:
    <?

    foreach($_GET as $n=>$v)
      $
    $n$v;

    echo 
    $left." - ".$top;

    oppure

    echo $_GET['left']." - ".$_GET['top'];


    ?>
    E questo e' tutto.

  5. #5
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832
    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:
    "per passarle a php devi usare un altra funzione che invii i dati al server e allo script/pagina php in questione"
    che devo scriverci nella pagina "script" che deve poi reinviare i dati alla pagina principale??

    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...

  6. #6
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    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

    Codice PHP:

    function forwarderurl id )
    {
          
    location.href url+"?left="+getLeft(id)+"&top="getTop(id) ;

    cosi' dovrebbe andare.

    Per quanto riguarda l'ntercettamento dei valori che stai mandando :

    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.
    ?>
    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.

  7. #7
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832
    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

  8. #8
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    allora guarda qua ho controllato un attimo
    era un errorino di sintassi alla fine
    Codice PHP:
    function forwarderurl id )
    {
        
    "left="+getLeft(id)+"&top="+getTop(id);
            
    location.href url+"?"+;

    nell'html devi fare una cosa del genere

    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.

  9. #9
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    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);

  10. #10
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832
    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...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.