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

    Creazione e lettura dei valori checkbox

    Ciao a tutti...Sto provando a creare una cosa apparentemente semplice ma chemi sta facendo perdere veramente un sacco di tempo...


    Ho una query che mi estrae e visualizza i dati dei miei messaggi privati..Vorrei semplicemente mettere vicino ad ognuno di essi una checkbox di modo che io possa selezionare quelle che voglio e poi cancellarle attraverso qualche script...

    ho fatto questo..
    Codice PHP:
    // All'inizio della pagina ho messo un link ad uno script
    echo"<tr><td><a href=\"_script/_include/pm_delete_all.php\">  CancellaTuttiSelezionati</a> ";




    $query_limit mysql_query("SELECT * FROM messaggio_privato WHERE id_utente_ric=$id_utente OR id_utente_sender=$id_utente ORDER BY last_update DESC LIMIT $primo$per_page");
    while(
    $results mysql_fetch_array($query_limit)) 
     {  
    // apro parentesi del while iniziale che mi estrae tutti i messaggi ricevuti
       
    $id_messaggio=$results['id_messaggio'];
       
    $message_unique_id=$results['message_unique_id'];
       
    //...........continuo con l'estrazione...........



       
    echo "<tr><td> $titolo_messaggio</a> </td><td><a href=\"_script/_include/pm_delete_all.php?pmid=" $id_messaggio "\">  Cancella</a>  <input type=\"checkbox\" name=\"select_mess[]\" value=\"$results[$id_messaggio]\"> </td></tr>";
           
    // Ho inserito quì la checkbox
     
    }



    //Lo script pm_delete_all.php contiene questo codice:

    $select_mess=$_POST'select_mess'];     


    foreach (
    $select_mess as $id){
    if(
    strlen($id)>0){
    echo
    "l'id del messaggio è:  $id 
    "
    ;
    }} 
    Il problema è che non mi funziona...Sicuramente manca qualcosa di fondamentale ma non ci arrivo potete per cortesia aiutarmi?

  2. #2
    Utente di HTML.it L'avatar di diaz
    Registrato dal
    Apr 2000
    residenza
    Berlin
    Messaggi
    379
    sei sicuro che il metodo del form sia "post"?

    Comunque potresti ottimizzare facendo il seguente
    Codice PHP:
    ?>
    <input type="checkbox" name="select_mess[<?php echo $results[$id_messaggio?>]" value="1">
    <?php
    Codice PHP:
    // Lo script pm_delete_all.php contiene questo codice:
    foreach ($_POST'select_mess'] AS $questo_id => $questo_valore)
    {
      if($questo_valore == 1)
      {
        ?>

    l'id del messaggio è:  <?php echo $questo_id ?></p><?php
      
    }
    }
    E da quel giorno, se andavo da qualche parte, io ci andavo correndo!

    Tweeting @apphancer | Views my own – except when I say things I don’t really think.

  3. #3
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,743
    Hai messo prima un link a pm_delete_all.php e poi il checkbox e vorresti che il record selezionato sia cancellato cliccando sul link? Se pensi di fare questo sei in errore. Devi usare form

    Codice PHP:
    echo "<form action=\"pm_delete_all.php\" method=\"post\">" ;

    while(
    $results mysql_fetch_array($query_limit))

    echo 
    "<input type=\"checkbox\" name=\"select_mess[]\" value=\"".$results['id_messaggio']\" />
    "
    .$results['titolo_messaggio']."

    ;


    echo 
    "<input type=\"submit\" value=\"cancella i record selezionati\" /></form>" 
    per vedere in pm_delete_all.php se arrivano gli id usa

    Codice PHP:
    echo "POST['select_mess']:<pre>" ;
    print_r($_POST['select_mess']) ;
    echo 
    "</pre>" 
    Errare humanum est, perseverare ovest

  4. #4
    ok allora sto mettendo il form.... solo che nella riga della visualizzazione del titolo del messaggio e della checkbox mi esce un errore...


    Codice PHP:

        
    echo "<tr><td>[b] <a href=\"_script/_include/pm_read.php?pmuid=" $message_unique_id "&page=" $pag "\"> $titolo_messaggio </a> [/b] </td><td><a href=\"_script/_include/pm_delete_all.php?pmid=" $id_messaggio .  "\">  Cancella</a> <a href=\"_script/_include/pm_evidence_remove.php?pmid=" $id_messaggio "\">  Elimina Evidenza</a> <input type=\"checkbox\" name=\"select_mess[]\" value=\"".$results['id_messaggio']" /> </td></tr>";

    //devo visualizzare il titolo del messaggio con il collegamento a una pagina che gli passa dei parametri per poi aprismi il messaggio,un link per permettere la cancellazione singola del messaggio,il link per metterlo in evidenza e poi la checkbox...Visto che gli altri funzionavano bene presumo che sia la sintassi della checkbox che non va... 

    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in /home/movieske/public_html/beta/public_html/my_pm_room_V3.php on line 315

  5. #5
    ho provato anche a mettere

    Codice PHP:
        echo "<tr><td> <a href=\"_script/_include/pm_read.php?pmuid=" $message_unique_id .  "&page=" $pag "\"> $titolo_messaggio</a> </td><td><a href=\"_script/_include/pm_delete_all.php?pmid=" $id_messaggio "\">  Cancella</a> <a href=\"_script/_include/pm_evidence_add.php?pmid=" $id_messaggio "\">  Evidenza</a>  <input type=\"checkbox\" name=\"select_mess[]\" value=\"$results['id_messaggio']\" > </td></tr>"

    Ma continua a darmi errore..secondo voi dove sbaglio?

  6. #6
    Allora se io scrivo in questo modo non mi da più l'errore:

    Codice PHP:

    echo "<tr><td> <a href=\"_script/_include/pm_read.php?pmuid=" $message_unique_id .  "&page=" $pag "\"> $titolo_messaggio</a> </td><td><a href=\"_script/_include/pm_delete_all.php?pmid=" $id_messaggio "\">  Cancella</a> <a href=\"_script/_include/pm_evidence_add.php?pmid=" $id_messaggio "\">  Evidenza</a>  <input type=\"checkbox\" name=\"select_mess[]\" value=\"$results[id_messaggio]\"> </td></tr>"

    Poi ho creato la pagina dove mi rediretta il form per cercare di vedere se mi prende questi id del messaggio e ho scritto questo codice:



    Codice PHP:

    echo "POST['select_mess']:<pre>" ;
    print_r($_POST['select_mess']) ;
    echo 
    "</pre>" 

    Il problema è che mi esce fuori questo errore e nient'altro:


    POST['select_mess']:



    Notice: Undefined index: select_mess in pm_all_evidence_add.php on line 45


    La quale linea 45 è:
    print_r($_POST['select_mess']) ;



    Che posso fare?Continua a mancare qualcosa?Dove sbaglio secondo voi?

  7. #7
    Utente di HTML.it L'avatar di diaz
    Registrato dal
    Apr 2000
    residenza
    Berlin
    Messaggi
    379
    non avere paura a tradurre da inglese a italiano

    Notice: Undefined index: select_mess in pm_all_evidence_add.php on line 45
    significa
    indice non definito: select_mess

    Se non é definito significa che non é stato inviato nessun valore con questo indice. Prova a controllare il form. Hai adottato la soluzione di Carlo?
    Puoi anche eliminare il tag HTML per il link. I link usano il metodo GET e non POST.
    E da quel giorno, se andavo da qualche parte, io ci andavo correndo!

    Tweeting @apphancer | Views my own – except when I say things I don’t really think.

  8. #8
    Allora ragazzi...ho risolto da me...Posto quì la soluzione trovata almeno se qualcuno come me si mette a cercare una cosa banale come questa ma difficile da trovare,ha la possibilità di risolvere in fretta....


    Dopo aver creato il form (grazie infinite per avermelo detto altrimenti stavo ancora diventando matto) e un tasto di submit per l'invio del suddetto, bisogna creare la checkbox(questo che leggete quì sotto è l'echo di un ciclo while ed assegnargli un valore che volete,io ho messo in questo caso l'id del messaggio...

    Codice PHP:

    echo "<tr><td> <a href=\"_script/_include/pm_read.php?pmuid=" $message_unique_id .  "&page=" $pag "\"> $titolo_messaggio</a> </td><td><a href=\"_script/_include/pm_delete_all.php?pmid=" $id_messaggio "\">  Cancella</a> <a href=\"_script/_include/pm_evidence_add.php?pmid=" $id_messaggio "\">  Evidenza</a>  <input type=\"checkbox\" name=\"select_mess[]\" value=" .$id_messaggio" > </td></tr>"

    Poi nella pagina a cui linkate tocca mettere una funzione che vi recuperi il valore delle check spuntate e poi ne facciate ciò che volete e quindi ho fatto questo:


    Codice PHP:

    foreach ($select_mess=$_POST['select_mess'] as $id)
    {
         if(
    strlen($id)>0)
         {
           echo
    "$id";
         
    // logicamente quì dentro potete mettere la query che vi serve per modificare i dati
         // delle checkbox che sono state selezionate
         




    Ecco fatto... Ho messo questa risorsa (anche se semplice e molti riterranno inutile) a disposizione di tutti,se i moderatori del forum ritengono necessario poterci creare una pillola,ben venga!

    Salutoni!!!

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.