Onclick macht was es will

Manuel324

Mitglied
Hallo,


Ich habe eine Onclick abfrage, aber wenn ich auch ok oder abbrechen klicke macht es den gleichen prozess.

Code:
<script>
function del(){
   if(confirm("Soll der Datensatz wirklich gelöscht werden?") == true)

      document.form.submit();
}
</script>

Das ist das Onclick eingebunden

PHP:
   echo "<form method='post' action=''>";
   echo "<input type='hidden' name='id' value='$zeile[id]'/>";
   echo "<input type='submit' name='starten' value='Anfrage Loeschen !' onClick='del()' />";	
   echo "</form>";
   echo "<hr>";


PHP:
<?php

if($_REQUEST[starten])
{
$cnx = mysql_connect('MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT');
mysql_select_db('MYSQL_KENNWORT');

$name = $_POST[id];

$ok1 = @mysql_query("DELETE FROM `usr_web3_1`.`navi` WHERE `navi`.`id` = $name LIMIT 1");
}

?>
<?php
    require_once ('config.php');
    $db_link = mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);
   

    $db_sel = mysql_select_db( MYSQL_DATENBANK )
    or die("Auswahl der Datenbank fehlgeschlagen");
   
    $sql = "
   SELECT * FROM navi
   ";
  
   $db_erg = mysql_query( $sql );
   if ( ! $db_erg )
   {
   die('Ungültige Abfrage: ' . mysql_error());
   }
  
   echo '<table border="0">';
   while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
   {
  
   echo "<p>";
   echo "$zeile[text]";
   echo "<p>";
   echo "<form method='post' action=''>";
   echo "<input type='hidden' name='id' value='$zeile[id]'/>";
   echo "<input type='submit' name='starten' value='Anfrage Loeschen !' onClick='del()' />";	
   echo "</form>";
   echo "<hr>";	
}
   echo "</table>";
  
   mysql_free_result( $db_erg );
?>    


<script>
function del(){
   if(confirm("Soll der Datensatz wirklich gelöscht werden?") == true)

      document.form.submit();
}
</script>

Es sollte nur die Abfrage gehen, aber irgendwie naja machts es immer das gleiche, es löscht einfach den beitrag egal wo man draufklickt
 
Das ist auch kein Wunder, da das Formular in jedem Fall abgeschickt wird. Um das zu verhindern musst du mit dem onSubmit-Event und den Rückgabewerten true und false arbeiten:
PHP:
   echo "<form method='post' action='' onSubmit='del()'>";
   echo "<input type='hidden' name='id' value='$zeile[id]'/>";
   echo "<input type='submit' name='starten' value='Anfrage Loeschen !'  />";    
   echo "</form>";
   echo "<hr>";
Javascript:
<script>
function del(){
   if(confirm("Soll der Datensatz wirklich gelöscht werden?") == true)
      return true;
   else
     return false;
}
</script>
 
Hi,

@Chumpers Funktion liefert zwar einen boolschen Wert zurück, dieser wird jedoch im submit-Event noch nicht verwendet, um den Defaultprozess abzubrechen. Dazu muss vor den Funktionsaufruf noch das Schlüsselwort return.
Code:
echo "<form method='post' action='' onsubmit='return del()'>";

Ciao
Quaese
 

Neue Beiträge

Zurück