Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 7 odgovora
  • 2.736 pregleda

Najnovija ↓

Ima li neko ideju kako da preko checkbox brisem poruke ? 07.08.2012. u 02:12 · pre 173 meseca #1
imam inbox sa primljenim porukama, pored svake sam stavio link delete koji moze da je obrise, ali ne znam kako da integrisem checkbox, pa da oznacim, sta zelim da obrisem i na kraju forme da stoji dugme delete. Sta da trazim na google? pomoc?
Re: Ima li neko ideju kako da preko checkbox brisem poruke ? 11.08.2012. u 00:06 · pre 173 meseca
izmenjeno 1 put, poslednji put CiM0beTa 11.08.2012. u 00:33
  1. CiM0beTa11.08.2012. u 00:33zapis iz teksta poruke
#3
Nisam uspeo, vidim da treba niz da se napravi, ali samo jos malo pomoci:

ovo mi je izlaz prethodne komande, imam tri poruke u inboxu:

Array ( )

1

Array ( )

1

Array ( )

1

a ovo mi je deo izlaza funkcije sa while petljom

...<input type='checkbox' value='$id'></td></tr>". "<pre>".print_r($_POST)."</pre>";

tabela je u templajtu, funkcija daje samo polja, svaka poruka ima svoj jedinstveni id. Ali samo pojasnjenje, kad chekiram polje, sta se tu menja?
Ako u niz stavim sve value onda cu obrisati sve poruke.?

molim te pomozite.
Re: Ima li neko ideju kako da preko checkbox brisem poruke ? 11.08.2012. u 01:22 · pre 173 meseca #4
evo iz glave... od pocetka

1. pretpostavka da su ti poruke u dvodimenzinalnom nizu

Code:

<? 
$poruke=array(

array('id'=>1, 'title'=>'poruka 1', 'txt'=>'Sadrzina'),
array('id'=>2, 'title'=>'poruka 2', 'txt'=>'Sadrzina'),
array('id'=>3, 'title'=>'poruka 3', 'txt'=>'Sadrzina'),
array('id'=>4, 'title'=>'poruka 4', 'txt'=>'Sadrzina'),

       );

?>



2. forma i printanje poruka za brisanje

Code:

<form method="post">

<? 
foreach ($poruke as $index => $poruka)
  {
       echo '<input type="checkbox" name="brisi[]" value="'.$poruka['id'].'">'.$poruka['title'];
  };

?>

<input type="submit" value="brisi">

</form>


komentar: id moze i u sam index elementa niza da se stavi ... kako god hoces... trudim se da kod bude sto jednostavniji, moze i sa array_walk i custom funkcijom i sve i svašta ... ali ajde da se držimo bazičnih stvari

3. printanje niza za brisanje
Code:

<pre>
<? print_r($_POST['brisi']); ?>
</pre>



4. brisanje sa foreach
Code:

<?
   foreach ($_POST['brisi'] as $index => $id)
     {
        mysql_query('DELETE FROM poruke WHERE id="'.$id.'"');
     };
?>


5. brisanje implode varijacija

Code:

$brisanje = implode(",", $_POST['brisi']);
mysql_query('DELETE FROM poruke WHERE id IN ('.$brisanje.')');



Naravno ovde je preskocena provera da li je pokupljeni niz bezbedan tj. da su stvarno postovane promenljive u id formatu koji vec koristiš ( prost broj, uniqid), da li poruke pripadaju tacno tom korisniku i sl.... ali to nije pitanje ovde :)



Re: Ima li neko ideju kako da preko checkbox brisem poruke ? 11.08.2012. u 01:32 · pre 173 meseca #5
E vidis zato sam ti rekao u drugom topic-u da citas malo pazljivije. Evo ti recimo http://www.tizag.com/htmlT/htmlcheckboxes.php :
Code (html):

<form name="myWebForm" action="mailto:[email protected]" method="post">
<p>Please select every sport that you play.</p>

Soccer: <input type="checkbox" name="sports" value="soccer"  />

Football: <input type="checkbox" name="sports" value="football"  />

Baseball: <input type="checkbox" name="sports" value="baseball"  />

Basketball: <input type="checkbox" name="sports" value="basketball"  />

</form>
 

Svako input polje treba da ima name atribut. Ako ces da saljes string svojoj skripti, ime pises kao name="ime". Ako ces da saljes array, ime pises kao name="ime[]".
E sad nisam bas siguran da li checkbox automatski salje array, bez da stavis [] posle imena. To probaj.
print_r($_POST) radis na stranici na koju submittujes form, a ne odmah ispod njega.

Ne moras da molis za pomoc, samo se sledeci put malo vise potrudi da sam provalis resenje... Nemoj da ucis povrsno stvari (a to radis, da ne radis znao bi da (na tvom nivou znanja) input polje bez name atributa nema nikakvog smisla). Meni nije problem da ti svaki put sazvacem resenje, ali tako neces nista nauciti.

Pozdrav i ne zameri, ovo je samo prijateljski savet...
Sviđa mi se1
Re: Ima li neko ideju kako da preko checkbox brisem poruke ? 11.08.2012. u 13:50 · pre 173 meseca #7
Jel moze jedno kratko pitanje? Kako da pokupim sve 'id' ciji je primalac isti '$to'

"SELECT `id` FROM `messages` WHERE `to` = $to"
---------------------------------------
posto sam vec nabudzio sajt, ne mogu sad da mu menjam funkcije za inbox, itd..tako da ne mogu da vrsim ugradnju, zagubicu se...

probao sam ovako:

Code (php):

// $to = primalac - funkcija za outbox
if (isset($_POST['delete'])) {
     $query = "SELECT `id` FROM `messages` WHERE `to` = $to";
     $run = mysql_query($query);
     $num = mysql_num_rows($run);
     for($i = 1; $i =< $num; $i++) {
          $name = $i;
          if (isset($_POST[$name])) {
               $delete = $_POST[$name];
               mysql_query("DELETE * FROM `messages` WHERE `to` = $to AND `id` = $delete");
          }
     }
}

?>
<form action="" method="post">
<input type='checkbox' name= '1' value='1'>
<input type='checkbox' name= '2' value='2'>
<input type='checkbox' name= '3' value='3'>
<input type='submit' name= 'delete' value='Obriši'>
</form>

 


medjutim to radi samo ako id pocinje od 1 i inkrementira, ali kad se obrise poruka izmedju dolazi do greske.
Re: Ima li neko ideju kako da preko checkbox brisem poruke ? 11.08.2012. u 16:25 · pre 173 meseca #8
ovo mi je inbox
Code (php):

// pristigle poruke
function inbox($to) {
     $query = "SELECT `id`, `from`, `subject`, `read`, `date_time` FROM `messages` WHERE `to`='$to' ORDER BY `id` DESC";
     if ($query_run = mysql_query($query)) {
          if (mysql_num_rows($query_run) == 0) {
               echo 'Nema poruka!';
          } else {       
               while ($query_row = mysql_fetch_assoc($query_run)) {
                    $id = $query_row['id'];
                    $from = $query_row['from'];
                    $subject = $query_row['subject'];
                    $date_time = $query_row['date_time'];
                    if ($query_row['read'] == 0) {
                         $strong_1 = "<strong>";
                         $strong_2 = "</strong>";
                    } else {
                         $strong_1 = "";
                         $strong_2 = "";               
                    }                  
                    echo "<tr><td>$strong_1$from$strong_2</td><td><a href='inboxmessage.php?message=$id'>$strong_1$subject$strong_2</a></td><td>$strong_1$date_time$strong_2</td><td><input type='checkbox' name='$id'></td></tr>";
               }
          }
     }
}
 


a ovo u obradi
Code (php):

// $to = primalac - funkcija za inbox
if (isset($_POST['delete'])) {
     $run = mysql_query("SELECT `id` FROM `messages` WHERE `to` = '".$to."'");
     $num = mysql_num_rows($run);
     echo $num;
     for ($i=0; $i<$num; $i++) {
          $id = mysql_result(mysql_query("SELECT `id` FROM `messages` WHERE `to` = '".$to."'"), $i, 'id');
          if (isset($_POST[$id])) {
               mysql_query("DELETE FROM `messages` WHERE `to` = '$to' AND `id` = '$id'");
               header ('Location: index.php?inbox');
          }
     }   
}
 


radi :)
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme