Visualizzazione dei risultati da 1 a 4 su 4

Discussione: jquery e php

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    27

    jquery e php

    slve a tutti, vi spiego cosa vorrei fare tramite php e jquery, ho 2 file php:
    utils.php che contiene solo funzioni tra cui una funzione per stampare un elenco di utenti presi dal database;
    listaUtenti.php che contiene la view, cioè la pagina che verrà visualizzata sul browser, questa pagina chiama una funzione presente in utils.php per stampare la tabella utenti.

    La tabella utenti ha una colonna "stato" con la classica immaginetta verde se l'utente è attivo rossa se è disattivo.
    Ciò che voglio fare è proprio questo, creare la funzione jquery che mi permetta di attivare/disattivare un utente in modo dinamico cliccando sull'immaginetta nella colonna del rispettivo utente.


    in utils.php ho la funzione che stampa la tabella:
    codice:
    while ($row = pg_fetch_assoc($lista))
        {
          //tutte le altre colonne della tabella
            echo '<td><a href="">';
             if ($row['attivo'] == true) echo '<img src="images/attivo.png"  id="stato" /></a></td>'; else echo '<img  src="images/disattivo.png" id="stato" /></a></td>';
            echo '</tr>';
        }
    mentre nel file listaUtenti.php ho la funzione jquery che mi deve permettere di modificare lo stato dell'utente:
    codice:
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
    
     <script type="text/javascript">
    $(document).ready(function() 
    {
        $('#stato').click(function()
        {
            $.ajax(
            {
                type: "POST",
                url: "cambiaStato()", // questa è la funzione che devo chiamare
                success: function()
                {
                    // se la funzione ha avuto esito positivo devo aggiornare l'immagine dello stato dell'utente con quella corretta cioè attivo o disattivo
                }
            });
        });
    });
    </script>

    Non riesco a sistemare lo script per fare quello che voglio.

    Grazie mille

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    27
    Ciao, ho modificato il codice per fare delle prove, ora passo il parametro userid per sapere quale user va modificato .
    quando provo il codice l'alert parte solo cliccando l'immagine sulla prima riga, sulle altre non succede nulla.
    inoltre quando si apre la finestra dell'alert non compare nulla, l'userid non viene stampato!
    che errori commetto?



    in utils.php ho la funzione che stampa la tabella:
    codice:
    while ($row = pg_fetch_assoc($lista))
        {
          //tutte le altre colonne della tabella
            echo '<td id="userid">'.$row['userid'].'</td>';
            echo '<td><a href="">';
             if ($row['attivo'] == true) echo '<img src="images/attivo.png"  id="stato" /></a></td>'; else echo '<img  src="images/disattivo.png" id="stato" /></a></td>';
            echo '</tr>';
        }
    mentre nel file listaUtenti.php ho la funzione jquery che mi deve permettere di modificare lo stato dell'utente:
    codice:
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
    
     <script type="text/javascript">
    $(document).ready(function() 
    {
         var user = $('#userid').val();
        $('#stato').click(function()
        {
             alert(user);
         }
    });
    </script>
    Grazie mille

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    228
    codice:
    url:cambiastato();
    Le chiamate ajax non si utilizzano per chiamare funzioni php a caso, ma come la parola url ti suggerisce devono essere dirette a un url, ovvero a una tua pagina.
    Devi creare un file, che so, chiamata_ajax.php, impostarlo come se ricevesse da un form in POST un parametro (l'id, il qualcosa con cui riconoci l'utente, così cambiastato() come fa a sapere su chi deve intervenire?) e quindi da quella pagina chiami la funzione cambiastato (di chi?dove?).

    Quindi hai 2 possibilità: una volta aggiornato il tuo database (suppongo ce ne sia uno, altrimenti di cosa stiamo parlando?) ristampi la tabella in php e la prendi come result nella chiamata ajax e cambi l'html del div che contiene la tabella
    oppure php passa un parametro (es. 1) per dire a js che è andato tutto bene, e a quel punto aggiorni la tabella direttamente da jquery senza ristamparla.

    La scelta dipende fondamentalmente dal tempo di risposta del server, dal tempo di esecuzione dello script php, dal numero di operazioni da fare sul browser...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    27
    Ciao, grazie mille per la risposta.
    Per quanto riguarda la chiamata alla funzione, avevo pesato di fare proprio come hai suggerito tu, con una nuova pagina php che riceve la chiamata da jquery e restituisce i risultati.
    Ciò che volevo evitare era proprio ricaricare la tabella di nuovo, poichè potrebbe essere pesante se il numero di righe è elevato.
    Al posto di caricare la tabella vorrei usare jquery per aggiornare solo l'immagine dello stato dell'utente.

    Ancora non sistemo tutto in modo corretto anche se ho capito come fare, però vorrei che mi spiegassi come mai ho quel problema che ho esposto nella seconda risposta in alto, dal codice che ho messo mi spieghi come mai l'alert si vede solo se clicco sul primo link e non su tutti?


    Grazie mille e Auguri

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.