Javascript "onClick" und PHP $HTTP_POST_VARS[]

Alles, was PHP betrifft, kann hier besprochen werden.

Javascript "onClick" und PHP $HTTP_POST_VARS[]

Postby startist » 21. July 2008 14:58

Hallo,

ich habe folgendes Problem:

In einem Formular befindet sich eine Tabelle mit mehreren Checkboxen. Dort kann der Nutzer Objekte auswählen, die (aus einer Datenbank) gelöscht werden sollen.
Nach dem Absenden kann ich die ausgewählten Objekte mit $HTTP_POST_VARS[] auslesen. Das funktioniert erst einmal.
Zur Absicherung soll nun ein Warnfenster aufgehen bevor die Daten gesendet werden. Dies wollte ich gern mit Javascript lösen.
So habe ich im <button> ein onClick definiert.
Wenn ich aber jetzt das Dokument absende und das JavaScript-Fenster bestätige ist $HTTP_POST_VARS[] leer.

Formulardefinition:
Code: Select all
<?php
<form action="' . $_SERVER['PHP_SELF'] . '?site=diff" method="post" name="tablesFormL" id="tablesFormL" enctype="application/x-www-form-urlencoded">
?>


Die Checkbox:
Code: Select all
<?php
<input type="checkbox" name="checkLosID[]" id="checkLosID" value="' . $losID["$i"] . '" />
?>


Die Absenden-Schaltfläche:
Code: Select all
<?php
<button type="submit" name="submit_mult" class="submit_mult" value="Löschen" title="Markierte Treffer löschen" onClick="return confirm(\'ACHTUNG! Möchten Sie die Auswahl wirklich endgültig löschen?\')">
?>


So gehts aber leider nicht, nur wenn ich onClick entferne. Wie kann ich das lösen, das erst die Sicherheitsabfrage über JavaScript kommt und ich ein gefülltes Array $HTTP_POST_VARS[] erhalte? :(

Vielen Dank für Eure Hilfe,
stARTist
User avatar
startist
 
Posts: 55
Joined: 24. June 2008 14:10
Location: Dresden

Postby Stepke-DSL » 21. July 2008 15:41

Ich würde die Prüfung in das
Code: Select all
onsubmit


Event des Formulars packen.
Wenn Nein ausgewählt wurde, muss halt noch ein
Code: Select all
return false

eingefügt werden.
Code: Select all
<?PHP
echo '<form onsubmit="if !confirm(\'ACHTUNG! Möchten Sie die Auswahl wirklich endgültig löschen?\') {return false;} action="' . $_SERVER['PHP_SELF'] . '?site=diff" method="post" name="tablesFormL" id="tablesFormL" enctype="application/x-www-form-urlencoded">';
?>


So in etwa sollte es funktionieren.
Habe es aber nicht getestet...

MfG Stepke
Stepke-DSL
 
Posts: 313
Joined: 12. July 2007 16:08
Operating System: Win XP Pro SP3 + SuSe Linux

Postby startist » 21. July 2008 15:53

@Stepke-DSL
Danke für die Info, nur kann ich das leider nicht verwenden, da ich mehrere submit-Schaltflächen mit unterschiedlichen Funktionen habe. Nur bei dem Button "Löschen" soll eben die JavaScript-Bestätigung kommen.

Grüße, stARTist
User avatar
startist
 
Posts: 55
Joined: 24. June 2008 14:10
Location: Dresden

Postby startist » 21. July 2008 19:04

Kann mir keiner helfen? Gibt es hier keinen JavaScript-Auskenner?
User avatar
startist
 
Posts: 55
Joined: 24. June 2008 14:10
Location: Dresden

Postby Xardas der Dunkle » 21. July 2008 22:07

Das Array $HTTP_POST_VARS ist total veraltet und sollte nicht mehr verwendet werden, es kann sogar sein das es nicht mehr aktiviert ist!
Benutzte stattdessen lieber das super globale Array $_POST
User avatar
Xardas der Dunkle
 
Posts: 482
Joined: 09. March 2008 19:40
Location: /var/www

Postby Stepke-DSL » 22. July 2008 06:56

Poste mal den HTML-Code, wie er vom PHP kommt und schreib nochmal dazu, was genau du willst.
Stepke-DSL
 
Posts: 313
Joined: 12. July 2007 16:08
Operating System: Win XP Pro SP3 + SuSe Linux

ich habs

Postby startist » 22. July 2008 08:14

Ok, ich hab das Problem geklärt. Der Hinweis mit $_POST war hilfreich. Auch wenn $HTTP_POST_VARS ohne eingebundenes JavaScript funktionierte, funktionierte es eben nicht mit JS. Daran lag's.

Very Thanks, startist
User avatar
startist
 
Posts: 55
Joined: 24. June 2008 14:10
Location: Dresden


Return to PHP

Who is online

Users browsing this forum: No registered users and 17 guests