Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Errore in caricamento pagine

    Salve a tutti,
    premetto che è da poco che programmo in php, comunque avrei un problema da sottoporvi.
    Ho questa pagina web in cui appare un form per l'eliminazione delle proiezioni, al cui interno richiamo alcune funzioni php che si trovano in una classe a parte. Funziona tutto l'unico problema che riscontro, e che non riesco a capire, è che l'eliminazione avviene al caricamento della pagine e non quando io clicco sul pulsante elimina. In questo modo mi elimina tutte le proiezioni allegate alla sala selezionata in precedenza.


    Questa è la parte di codice che costruisce il form per l'eliminazione

    codice:
    <?php
        for ($i = 0; $i < count($proiezione_da_eliminare); $i++) {
            ?>  
                            <tr>
                                <td width="10%"> Film: 
                                     <?php echo $proiezione_da_eliminare[$i]->get_titolo(); ?> </td></td>
                                <td width="10%"> Data: 
                                     <?php echo $proiezione_da_eliminare[$i]->get_data(); ?> </td>
                                <td width="10%"> Ora: 
                                     <?php echo $proiezione_da_eliminare[$i]->get_ora(); ?> </td>
                                <td width="5%"> <input id="<?php echo $proiezione_da_eliminare[$i]->get_id_proiezione();?>" name="<?php echo $proiezione_da_eliminare[$i]->get_id_proiezione();?>" type="submit" value="Elimina" onload="<?php $gestore_proiezione->elimina_proiezione($proiezione_da_eliminare[$i]->get_id_proiezione()); ?>"/></td>
                            </tr>
                    <?php
                }
                ?>
    come vedete io richiamo la funzione php sull'onclick non sull'onload.

    Vi posto inoltre il codice dell'intera pagine.

    codice:
    <html>
        <head>
            <link href="CSS/Stile_header_footer.css" rel="stylesheet" type="text/css" />
        </head>
        <?php
        include 'Header.php';
        ?>
        <body>
            <?php
            include 'Film/Gestore_proiezione.php';
            $gestore_proiezione = new Gestore_proiezione();
            $lista_titoli = $gestore_proiezione->titolo_film();
            ?>
            <form name="form_seleziona_titolo"  method ="POST" onsubmit ="<?php $proiezione_da_eliminare = $gestore_proiezione->ricerca_proiezione($_POST['id_sala_r']); ?>">
                <table width="20%" border="1"><caption><div>Ricerca Proiezione Per Sala</div></caption>
                    <tr>
                        <td>
                            <select name="id_sala_r" id="id_sala_r">
                                <option <?php if (isset($_POST["id_sala_r"])) { if ($_POST["id_sala_r"] == 1) { echo 'selected'; } } ?> value="1" > Sala 1 </option>
                                <option <?php if (isset($_POST["id_sala_r"])) { if ($_POST["id_sala_r"] == 2) { echo 'selected'; } } ?> value="2" > Sala 2 </option>
                                <option <?php if (isset($_POST["id_sala_r"])) { if ($_POST["id_sala_r"] == 3) { echo 'selected'; } } ?> value="3" > Sala 3 </option> 
                            </select>
                        </td>
                    </tr>
                </table>
                <input name="confirm" type="submit" value="Cerca" />
            </form>
            </br>
                    <?php
                    if ($proiezione_da_eliminare != null) {
                        ?>
                <form id="form_elimina_proiezione" name="form_elimina_proiezione" method="GET" >
                    <table border="1"><caption><div>Elimina Proiezione</div></caption>
    
        <?php
        for ($i = 0; $i < count($proiezione_da_eliminare); $i++) {
            ?>  
                            <tr>
                                <td width="10%"> Film: 
                                     <?php echo $proiezione_da_eliminare[$i]->get_titolo(); ?> </td></td>
                                <td width="10%"> Data: 
                                     <?php echo $proiezione_da_eliminare[$i]->get_data(); ?> </td>
                                <td width="10%"> Ora: 
                                     <?php echo $proiezione_da_eliminare[$i]->get_ora(); ?> </td>
                                <td width="5%"> <input id="<?php echo $proiezione_da_eliminare[$i]->get_id_proiezione();?>" name="<?php echo $proiezione_da_eliminare[$i]->get_id_proiezione();?>" type="submit" value="Elimina" onload="<?php $gestore_proiezione->elimina_proiezione($proiezione_da_eliminare[$i]->get_id_proiezione()); ?>"/></td>
                            </tr>
                    <?php
                }
                ?>
                    </table>
                </form>
    <?php } else { ?>
                <H3>Selezionare la sala</H3>
            <?php
        }
        ?>           
        </body>
    </html>
    <html>
    <?php
    include 'Footer.php';
    ?>
    </html>
    Grazie a tutti per l'attenzione

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,471

    Re: Errore in caricamento pagine

    Originariamente inviato da cavolo90
    codice:
    onload="<?php $gestore_proiezione->elimina_proiezione($proiezione_da_eliminare[$i]->get_id_proiezione()); ?>"
    come vedete io richiamo la funzione php sull'onclick non sull'onload.
    Da quello che vedo invece la chiami sull'onload, non c'è da nessuna parte onclick

  3. #3
    Si scusa ho copiato una prova non ci avevo fatto caso.. comunque anche con onclick non funziona

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,471
    Comunque non puoi chiamare una funzione PHP da Javascript, Javascript vive sul tuo pc, PHP sul server e termina il suo lavoro prima che tu visualizzi la pagina.
    Il server interpretando la tua pagina esegue tutto il codice php che incontra, quindi anche la funzione di eliminazione.
    Ciò che puoi fare è chiamare all'onclick, tramite AJAX, una pagina php che contiene il codice per eseguire l'eliminazione.

  5. #5
    Ho capito.. grazie della dritta
    siccome in ajax sono ancora incapace mi potresti dire come potrei fare per favore??

  6. #6
    Sono riuscito a scrivere la funzione ajax e ora funziona tutto benissimo.. l'unica pecca è che ricarica la pagina alla scelta della sala (il primo form) e non all'elenco delle proiezioni (secondo form).. ci sarebbe un modo per far ricaricare dal secondo form??

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 © 2024 vBulletin Solutions, Inc. All rights reserved.