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

    Richiamare dati e elencarli con un check box

    Salve,

    vorrei creare un pannello dal quale è possibile eliminare dei dati (in questo caso delle news). Ho creato un gestore news, che inserisce dati in un database.

    Ora vorrei richiamare questi dai, per esempio il titolo e affiancargli un check box, perchè deve essere possibile selezionare + articoli, ed all'invio del bottone Elimina, gli articoli selezionati devo eliminarsi dal database.

    Il mio problema è che non sono capace ad utilizzare i check box. Ho creato questo codice:

    Codice PHP:
    <form action="drop_news.php" method="post" name="eliminaNews">
    <?php
    $query 
    "SELECT id, title FROM tfn_articles";
    $results mysql_query($query) or die (mysql_error());

    while(
    $row mysql_fetch_array($results))
    {
        echo 
    "<input type=\"checkbox\" name=\"$row[id]\" value=\"$row[id]\" /> $row[title]
    "
    ;
    }

    ?>





    <input type="submit" value="Elimina" />
    </td>
    </tr>
    </table>
    </form>
    Ora il mio problema è come poter richiamare nel file drop_news.php e racchiudere in variabili solo gli articoli selezionati..

    con questo codice io ne posso eliminare solo uno alla volta.. mentre io voglio che tutte le news spuntate vengano eliminate:
    Codice PHP:
    $elimina $_REQUEST['elimina'];

    $query "DELETE FROM tfn_articles WHERE id='$elimina'";

    if(
    mysql_query($query))
    {
        echo 
    "<p align=\"center\">Eliminazione avvenuta con successo</p>";
    }
    else
    {
        echo 
    "<p align=\"center\">Errore durante l'eliminazione</p>";

    La rovina del mondo sara' l'indifferenza. Ma chi se ne frega!!

  2. #2
    Ciao,
    i checkbox devono avere tutti lo stesso nome, questo perchè idealmente rappresentano oggetti dello stesso insieme.

    Detto questo,
    l'invio di un form con una selezione di più checkbox genera la creazione di un array;
    quindi nello script dove vai a ricevere i checkbox selezionati(quelli non selezionati non vengono inviati) ti devi aspettare un array di valori.

    Ciao
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

  3. #3
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Codice PHP:
    <form action="drop_news.php" method="post" name="eliminaNews">
    <?php
    $query 
    "SELECT id, title FROM tfn_articles";
    $results mysql_query($query) or die (mysql_error());

    while(
    $row mysql_fetch_array($results))
    {
        echo 
    "<input type=\"checkbox\" name=\"ID[]\" value=\"$row[id]\" /> $row[title]
    "
    ;
    }

    ?>





    <input type="submit" value="Elimina" />
    </td>
    </tr>
    </table>
    </form>
    e poi

    Codice PHP:
    foreach ($_POST[ID] as $delete_id)
    {
    $query "DELETE FROM tfn_articles WHERE id='$delete_id'";

    if(
    mysql_query($query))   echo "<p align=\"center\">Eliminazione avvenuta con successo</p>";
    else    echo 
    "<p align=\"center\">Errore durante l'eliminazione</p>";

    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  4. #4
    ciao e grazie a tutti e due.. ora funziona correttamente.

    Ho un altra cosa da chiedervi, io ho questo codice che stampa dei campi di form e gli assegna dei valori. Mi chiedo ora come richiamarli (non ho riportato il codice del form ed il resto, mi sono limitato solamente al ciclo for) + in basso ho riportato la mia soluzione, che però aimè non funziona..
    Codice PHP:
    <?php

    for($p=1$p<=10$p++)
    {
    echo 
    "
    <tr>
    <td class=\"box_topdxsx\">
    <input type=\"text\" size=\"40\" name=\"epIta
    $p\" /></td>
    <td class=\"box_topcenter\">
    $p</td>
    <td class=\"box_topdx\">
    <input type=\"text\" size=\"40\" name=\"epOrig
    $p\" /></td>
    </tr>"
    ;
    }

    ?>
    Questa è la mia soluzione (non funzionante però):

    Codice PHP:
    $telefilm $_REQUEST['telefilm'];
    $stagione $_REQUEST['season'];



    // Controllare se i campi obbligatori sono stati compilati

    if (trim($telefilm) == "" OR trim($stagione) == "")
    {
        echo 
    "<p align=\"center\">Il campo Telefilm e Stagione sono obbligatori, pertanto devono essere compilati!
    <a href=\"javascript:history.back()\">&gt;&gt; Torna indietro</a> e riprova.</p>"
    ;
    }


    for(
    $p=1$p<=10$p++)
    {
    $_REQUEST["epIta$p"];
    $_REQUEST["epEng$p"];


    }
    $query "INSERT INTO tfn_episodes (titleORIG, titleITA, tid, season) VALUES ('$titolo_originale', '$titolo_italiano', '$telefilm', '$stagione')";

    if (
    mysql_query($query))
    {
        echo 
    "<p align=\"center\">Episodi inseriti correttamete. Per tornare alla pagina precedente e poter proseguire con l'inserimento di un nuovi eousidu cliccate <a href=\"javascript:history.back()\">qui</a></p>";
    }
    else
    {
        echo 
    "<p align=\"center\">Errore durante l'inserimento dei dati.
    [b]"
    mysql_error() ."[/b]
     Tornate indietro e riprovate. Se il problema persiste contattare il <a href=\"mailto:telefilm-network@netsons.org\">webmaster</a>.
    <a href=\"javascript:history.back()\">&gt;&gt; Torna indietro</a></p>"
    ;
    }

    mysql_close($db); 
    La rovina del mondo sara' l'indifferenza. Ma chi se ne frega!!

  5. #5
    Utente di HTML.it L'avatar di joker06
    Registrato dal
    Dec 2006
    Messaggi
    782
    che errore ti genera?

  6. #6
    il fatto è che non mi inserisce tutti i campi nel database, nemmeno uno e quando faccio controllare il corretto inserimento della $query nel db mi stampa la stringa impostata da me con la segnalazione che non è riuscito ad inserire i dati
    La rovina del mondo sara' l'indifferenza. Ma chi se ne frega!!

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.