ugrás a tartalomhoz

Törlés megerősitése

aky22 · 2011. Júl. 2. (Szo), 16.07
Lécci segítsetek! Van egy oldal ahol a törléshez megerősítés kéne, de ha a mégse gombra kattintok akkor is törli azt a sort (adatbázisról van szó). itt a script:
  1. <script type="text/javascript">  
  2.             function elhagyod()  
  3.                 {  
  4.                     var elhagy=confirm("Valóban törlöd a bejegyzést?");  
  5.                     if (elhagy==true)  
  6.                     {  
  7.                         window.open("delete.php","_self");    
  8.                     }  
  9.                     else  
  10.                     {  
  11.                         return false  
  12.                     }  
  13.                 }  
  14. </script>  
és a php (ez a button oldali rész):
  1. <?php  
  2.                 require_once("../include/dbconn.php");  
  3.                 $p="SELECT * FROM `news`";  
  4.                 $e=mysql_query($p);  
  5.                 echo '<p><a href="news.php?i=0"><img src="img/psd-new-button.png" alt="Hír feltöltése" border="none" /></a></p>';  
  6.                 echo '<table id="newstb" cellpadding="0" cellspacing="0" border="0" class="display">';  
  7.                 echo '<thead>  
  8.                         <tr>  
  9.                             <th>ID</th>  
  10.                             <th>Cím</th>  
  11.                             <th>Tartalom</th>  
  12.                             <th>Írta</th>  
  13.                             <th>Létrehozva</th>  
  14.                             <th>Módosítás</th>  
  15.                         </tr>  
  16.                         </thead>';  
  17.                 echo '<tbody>';  
  18.                 while ($row=mysql_fetch_assoc($e))  
  19.                 {  
  20.                 echo '<tr>  
  21.                             <td>'.$row['id'].'</td>  
  22.                             <td>'.$row['title'].'</td>  
  23.                             <td>'.$row['content'].'</td>  
  24.                             <td>'.$row['name'].'</td>  
  25.                             <td>'.$row['date'].'</td>  
  26.                             <td><a href="modification.php?id='.$row['id'].'"><img src="img/psd-m-button.png" alt="módosítás"></a><a href="delete.php?id='.$row['id'].'" onclick="elhagyod()"><img src="img/psd-m-button.png" alt="delete"></a></td>  
  27.                          </tr>';  
  28.                 }  
  29.                 echo '</tbody>';  
  30.                 echo '</table>';  
  31.             }?>  
 
1

return

DonPepito · 2011. Júl. 2. (Szo), 17.54
És ha az onclick-nél beteszed elé a return-t?
Így:
  1. onclick="return elhagyod();"  
2

Minek bonyolítod?

pkadam · 2011. Júl. 2. (Szo), 18.36
Egyrészt DonPepito jól szólt, másrészt minek bonyolítani a megerősítős szkriptet? (Ráadásul hibás is, mert egy paraméterezés nélküli delete.php oldalra irányítod át, igaz, ezt a böngésző nem veszi figyelembe, mert az <a> href-je élvez prioritást.) Ennyi elég lenne:
  1. <script type="text/javascript">    
  2. function elhagyod() {  
  3.     return confirm("Valóban törlöd a bejegyzést?");    
  4. }  
  5. </script>   
Az elnevezést viszont érdemes lenne megváltoztatni, mert a függvény visszatérési értéke pont ellentétes lesz a nevével. Inkább megerosit(), és akkor a TRUE szemantikailag is a megerősítésre szól, nem pedig a művelet elhagyására.

(Meg esetleg a törlés megerősítéséhez még oda lehetne írni a kérdés alá az adott cikk címét, hogy a felhasználó biztosan tudja, mit töröl. Sőt: én sosem engedek törölni direkt url-ből (delete.php?id=123), az id-t mindig egy formmal passzoltatom ám, természetesen method="post"-tal. Persze ez hackelhető, de még mindig biztonságosabb.)
3

Köszi kipróbálom amint

aky22 · 2011. Júl. 2. (Szo), 19.27
Köszi kipróbálom amint rendbedobtam a jelenleg hulla gépemet. Remélem menni fog. A formról meg csak annyit hogy mondták már de ez így egyszerűbb főleg hogy csak az admin látja.