Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2016
    Messaggi
    7

    onClick e Lightbox2 in conflitto

    Buongiorno a tutti,
    ho un problema con lightbox2, funziona benissimo ma ho bisogno di un contatore visite delle foto.
    Devo inviare via post l'id della foto per aggiornare il contatore nel database in contemporanea all'apertura di lightbox.

    codice client:
    codice:
    <form method="post" action="<?php $_SERVER['PHP_SELF']?>">
    <input type="hidden" name="miafoto" value="<?php echo $gallery['idimmagine'];?>">
    
    <a rel="lightbox" onclick="document.forms[<?=$idfoto?>].submit();"  href="/images/fotogallery/full/<?php echo $gallery['immagine'] ?>"  title="<?php echo stripslashes($gallery['didascalia']) ?>"><img src="/images/fotogallery/small/<?php echo $gallery['immagine'] ?>"  /></a>
    
    </form>
    lato server:
    codice:
    
    
    codice:
    if  (isset($_POST['miafoto']))  {
            
            $idimg=$_POST['miafoto'];
            
            $res_immagine=dbquery("SELECT * FROM dettaglio_fotogallery WHERE idimmagine=$idimg ");
            $cfoto=mysql_fetch_array($res_immagine);
        
        $cvisite=$cfoto['click']+1;
        $clickfoto=$cfoto['idimmagine'];
            
            if (dbquery("UPDATE dettaglio_fotogallery SET click='".$cvisite."' WHERE idimmagine=$clickfoto") );
    Allora con onclick inserito mi aggiorna il database ma non mi fa aprire lightbox, mentre se tolgo onclick funziona perfettamente lightbox. Come faccio a farli funzionare entrambi? Grazie
    Ultima modifica di ciro78; 09-02-2016 a 17:34 Motivo: tag code

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ciao e benvenuto, forzando il submit del form il lightbox viene bypassato (non c'è nessun conflitto). Per far funzionare il tutto devi inserire ID nel tag <a> e recuperarlo nello script del lightbox, poi sempre dentro allo script dovrai eseguire una chiama Ajax che aggiorni il database.
    Livello di difficoltà 7/8 con conoscenza base di js e Ajax
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2016
    Messaggi
    7
    Ciao e grazie per la veloce risposta, purtroppo io sono di livello 1 con Ajax e la vedo dura risolvere, ho provato con vari metodi Ajax a fare il submit ma ho sempre riscontrato il blocco di lightbox, non è possibile invece forzare anche l'apertura di lightbox in onclick?

  4. #4
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    ciao webarmy benvenuto sul forum.
    Ti invito a leggere il regolamento ed inserire il codice nei tag code in modo da agevolare la lettura per chi vuole aiutarti. Per ora ho corretto io.
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Quote Originariamente inviata da webarmy Visualizza il messaggio
    Ciao e grazie per la veloce risposta, purtroppo io sono di livello 1 con Ajax e la vedo dura risolvere,
    In tal caso penso non ne valga la pena
    ho provato con vari metodi Ajax a fare il submit ma ho sempre riscontrato il blocco di lightbox,
    hai troppa confusione e lightbox non c'entra nulla
    non è possibile invece forzare anche l'apertura di lightbox in onclick?
    Direi di no
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2016
    Messaggi
    7
    Grazie per la risposta, è un vero peccato per tutti i siti di fotografi e non, che utilizzano lightbox e che non possano verificare quali immagini siano le più cliccate, strano che il plugin non lo preveda. Sono disperato perché ci tenevo tanto.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2016
    Messaggi
    7
    ho provato ma ancora non va, qualche suggerimento?

    il link dove avviene il click:
    codice HTML:
    <a rel="lightbox" id="miafoto-<?=$gallery['idimmagine']?>" href="/images/fotogallery/full/<?php echo $gallery['immagine'] ?>" ........ecc
    codice Ajax:
    codice:
    <script>
    $(document).on('click', 'a[id^=miafoto]', function(){    
    var inviaID = $(this).prop('id').split('-')[1];    
    // Questo ora ha l'id immagine preso da  $gallery['idimmagine']  dichiarato sul tag ID .        
    $.ajax({        
    url: 'nuovoclick.php',        
    type: 'POST',        
    data: { 'fotoid' : inviaID },        
    success: function(data){                            
    }    
    });
    });            
    </script>
    pagina nuovoclick.php che riceve e aggiorna il database:
    codice:
    require("common/funzioni.php");            
    //aggiorno database su click foto            
    if  (isset($_POST['fotoid']))  {                
    $bibi=$_POST['fotoid'];                
    $res_immagine=dbquery("SELECT * FROM dettaglio_fotogallery WHERE idimmagine=$bibi ");
    $cfoto=mysql_fetch_array($res_immagine);        
    $cvisite=$cfoto['click']+1;    
    $clickfoto=$cfoto['idimmagine'];                
    if (dbquery("UPDATE dettaglio_fotogallery SET click='".$cvisite."' WHERE idimmagine=$clickfoto") );
     }
    La galleria lightbox funziona ma non si aggiorna il database
    Ultima modifica di webarmy; 10-02-2016 a 12:07

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Il codice jquery è racchiuso nel document ready? La console di firebug cosa restituisce? Vedi la chiamata Ajax?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2016
    Messaggi
    7
    ciao ecco cosa dice la console,

    codice:
    TypeError: $(document).on is not a function. (In '$(document).on', '$(document).on' is undefined)
    (funzione anonima)common.js:140
    //common.js file dove ho il codice racchiuso nel ready
    readyjquery.min.js:25:293
    Ljquery.min.js:32:156
    riga 140 dove risiede la funzione anonima
    codice:
    $(document).on('click', 'a[id^=miafoto]', function(){

  10. #10
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Le domande erano tre hai risposto solo ad una. Aggiungo richiami la libreria jquery nella pagina?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

Tag per questa discussione

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.