Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Gestione CheckBox

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2017
    Messaggi
    4

    Gestione CheckBox

    Ciao a tutti, sto creando un sito gestionale per professori come progetto per la maturit� dov'� possibile attraverso un database visualizzare classi, informazioni professore e alunni;
    come ultima funzione dovrei permettere la creazione di verifiche, mi spiego meglio:
    ho un database con all'interno varie domande, queste domande le stampo dentro una tabella grazie a un ciclo while che cicla in base al risultato della query, sempre dentro la tabella di fianco a ogni domanda ho messo anche una checkbox che mi dovrebbe permettere di selezionare le varie domande e tramite un pulsante di stamparle in un'altra tabella, allego il codice che mi dovrebbe permettere la gestione dei button:

    Codice PHP:

    if(isset($_POST['search2'])){    foreach ($_POST['messaggi'] as $key => $m_id)
    {
       
    $query "SELECT domande.* FROM domande WHERE id_domanda = $m_id";   $search_result1 filterTable($query);}

    invece la checkbox l'ho compilata cosi'

    Codice PHP:

    <td> <input type="checkbox" name="messaggi[]"  value="<? echo $id ?>"> </td>
    quest'altro � il codice che dovrebbe generare la tabella dopo la selezione

    Codice PHP:
     <?php while($row mysqli_fetch_array($search_result1)):?>                <tr>                    <td><?php echo $row['tipologia'];?></td>                    <td><?php echo $row['descrizione'];?></td>                    <td><?php echo $row['argomento'];?></td>            


                    </tr>                <?php endwhile;?>


    la tabella da cui seleziono le domande � creata cosi':

    Codice PHP:
    if(isset($_POST['search'])){    $valore_da_cercare $_POST['valore_da_cercare'];    // search in all table columns    // using concat mysql function    $query = "SELECT domande.* FROM domande, elencano, professori WHERE elencano.id_domanda = domande.id_domanda AND elencano.id_professore = professori.id_professore AND professori.username ='$username' AND domande.argomento LIKE '%".$valore_da_cercare."%'";    $search_result = filterTable($query);
    } else {   $query "SELECT domande.* FROM domande, elencano, professori WHERE elencano.id_domanda = domande.id_domanda AND elencano.id_professore = professori.id_professore AND professori.username ='$username' ;";   $search_result filterTable($query);} 
    e infine questo

    Codice PHP:
    <table>                <tr>                    <th>Tipologia</th>                    <th>Descrizione</th>                    <th>Argomento</th>            <th>Seleziona</th>


                    </tr>
                     <?php while($row mysqli_fetch_array($search_result)):?>                <tr>                    <td><?php echo $row['tipologia'];?></td>                    <td><?php echo $row['descrizione'];?></td>                    <td><?php echo $row['argomento'];?></td>            <td> <input type="checkbox" name="messaggi[]"  value="<? echo $id ?>"> </td>


                    </tr>                <?php endwhile;?>            </table>
    La parte del search mi permette di cercare una classe, adesso quando avvio il codice mi compaiono due tabelle, una con le checkbox e una senza ed entrambe riempite con le stesse domande, in teoria quando seleziono le domande e schiaccio il bottone "Crea" la seconda tabella dovrebbe aggiornarsi facendo vedere solo le domande selezionate.

    I miei problemi sono: la seconda tabella in origine dovrebbe comparire vuota e solo in seguito alla selezione riempirsi, cosa che comunque non succede, appena seleziono le domande e invio mi restituisce il seguente errore:
    Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\domande.php on line 117

    Mi scuso in anticipo per gli eventuali errori nel codice, � solo il primo anno che studio php, vi sarei molto grato se mi aiutaste a trovare l'errore.

  2. #2
    Evidentemente mysqli_fetch_array() fallisce.
    Se fai
    Codice PHP:
    var_dump($search_result1); 
    Che ti dice?

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2017
    Messaggi
    4
    Mi restituisce "bool(false)".

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Se lo hai messo subito dopo l'esecuzione della query, che sarebbe il posto giusto, vuol dire che la non è stata trovata un entry con quell'id.

    La funzione filterTable() che fa? Esegue la query e basta o fa anche altro sul risultato?

    Verifica anche i valori di $m_id per assicurarti che contenga id validi.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2017
    Messaggi
    4
    Si mi restituisce quello, non so esattamente la funzione di filterTable, io lo utilizzo solo per passare il risultato di una query in una variabile, non capisco se ci siano problemi nella query o nel array "messaggi[]"...

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Così ad intuito quella funzione come minimo esegue la query, visto che non la esegui tu da nessuna parte, e poi spero che faccia quelche altra cosa, perché $search_result1 la sovrascrivi ad ogni iterazione. Metti che in $_POST['messaggi'] ci sono 4 id, i primi 3 te li perdi e ti resta buono solo il risultato del quarto.

    Trova quella funzione e vedi cosa fa leggendone il codice.

    Per sapere cosa c'è in $_POST['messaggi'] basta che prima di
    foreach ($_POST['messaggi'] as $key => $m_id)
    metti
    Codice PHP:
    echo "<pre>";
    print_r$_POST['messaggi'] );
    echo 
    "</pre>";
    exit; 
    Ultima modifica di Alhazred; 17-05-2017 a 12:11

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2017
    Messaggi
    4
    La function filterTable è questa:
    Codice PHP:
    function filterTable($query){    $connect mysqli_connect("localhost""root""""database_sito");    $filter_Result mysqli_query($connect$query);    return $filter_Result;} 

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Quindi la parola "filter" non ha senso, non filtra niente quella funzione, esegue la query e basta.

    Hai provato a fare come ti ho detto per vedere cosa contiene $_POST['messaggi'] ?

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2017
    Messaggi
    4
    Si quando seleziono mi restituisce questo:

    Array
    (
    [0] =>
    [1] =>
    )

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Quindi in $_POST['messaggi'] non c'è niente e non hai nessun id da andare a prendere nel database.
    Vedi di capire perché $_POST['messaggi'] è vuota.

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.