php.de

Zurück   php.de > Lösungen durch Skripte > Scriptbörse

Scriptbörse PHP Lösungen für nen schmalen Taler

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.09.2011, 14:59  
Neuer Benutzer
 
Registriert seit: 07.09.2011
Beiträge: 3
PHP-Kenntnisse:
Anfänger
michachen91 befindet sich auf einem aufstrebenden Ast
Standard "Einfacher" Submit

Hallo,

ich bin noch nicht lange mit php vertraut. Aber ich habe eine kleine website mit benutzerlogin geschrieben. allerdings habe ich jetzt folgendes Problem.
Ich kann Gruppen anlegen und löschen. Allerdings möchte ich, dass bevor die Gruppe gelöscht wird, die Aktion bestätigt wird oder eben abgebrochen wird. Dafür habe ich zwei Buttons, ein mal "JA" und einmal "Nein". Allerdings funktioniert das nicht richtig. Unten mal mein Code, vielleicht kann mir jemand helfen!? Das wär echt lieb! DANKE!!

PHP-Code:
$sql "SELECT 
                    groupName
               FROM 
                       Gruppe;"

    
$result mysql_query($sql) OR die(mysql_error()); 
    
    echo 
"<form ".
                 
" method=\"post\" ".
                 
" accept-charset=\"ISO-8859-1\">";
            echo 
"<select name=\"groupName\">\n";
            echo 
" <option value=\"0\">Bitte eine Gruppe wählen</option>\n";
            while(
$row mysql_fetch_assoc($result)) {
                echo 
" <option value=\"".$row['groupName']."\">\n";
                echo 
$row['groupName']."\n";
        echo 
" </option>\n";
    }
    echo 
"</select>\n";
    echo 
"<input type=\"submit\" name=\"submitb\" value=\"Gruppe löschen\">";
    echo 
"</form>\n";
    
    
    
    if (isset(
$_POST["groupName"])) 
    { 
        echo 
"<form ".
                 
" method=\"post\" ".
                 
" accept-charset=\"ISO-8859-1\">";
        echo 
"<br>";
        echo 
"Wollen Sie die Gruppe wirklich löschen?<br>\n";
        echo 
"<input type=\"submit\" name=\"ja\" value=\"Ja\">";
        echo 
"<input type=\"submit\" name=\"nein\" value=\"Nein\">";
        echo 
"<br>";
        echo 
"<br>";
        echo 
"</form>\n";
    
        if (isset(
$_REQUEST["ja"]))
        { 
            
$sql "DELETE FROM 
                                Gruppe
                    WHERE 
                                groupName = '"
.$_POST['groupName']."'
                    "
;
            
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
    
            echo 
"Die Gruppe wurde gelöscht.<br>\n";
            echo 
"<br>";
            echo 
"<a href=\"index.php\">Zurück zum Hauptmenü</a>\n";
            echo 
"<br>";
            echo 
"<br>";
            echo 
"<br>";
        }
        elseif (isset(
$_REQUEST["nein"])) 
        {
            echo 
"Die Gruppe wurde nicht gelöscht.<br>\n";
            echo 
"<br>";
            echo 
"<a href=\"index.php\">Zurück zum Hauptmenü</a>\n";
            echo 
"<br>";
            echo 
"<br>";
        }
        
    } 
michachen91 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 07.09.2011, 15:02  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

„Funktioniert nicht“ ist keine brauchbare Problembeschreibung.

Beschreibe bitte, was du von deinem Code im einzelnen erwartest, und wie das tatsächliche Verhalten davon abweicht.
Und betreibe grundlegendes Debugging, in dem du dir die Inhalte von Variablen zur Kontrolle ausgeben lässt.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 07.09.2011, 15:15  
Neuer Benutzer
 
Registriert seit: 07.09.2011
Beiträge: 3
PHP-Kenntnisse:
Anfänger
michachen91 befindet sich auf einem aufstrebenden Ast
Standard

Also, ich habe ein Auswahlmenü, welches aus der Datenbank Daten ausliest (die vorhandenen Gruppen). Anschließend kann ich über einen Button ("Gruppe löschen") die Gruppe aus der Datenbank löschen. Nun soll die Gruppe allerdings nicht sofort aus der Datenbank gelöscht werden, wenn ich auf den Button "Gruppe löschen" klicke, sondern soll den Benutzer fragen, ob er die Gruppe wirklich löschen will. Jetzt kann der User zwischen dem Button "Ja" und dem Button "Nein" wählen. Wenn er auf den Button "Ja" klickt, soll die Gruppe aus der Datenbank gelöscht werden. Wenn der Button "Nein" gedrückt wird, soll die Gruppe in der Datenbank erhalten bleiben und dem Benutzer soll ein kleiner Text ausgegeben werde ("Die Gruppe wurde nicht gelöscht! Zurück zum Hauptmenü") und der letzte Satz "Zurück zum Hauptmenü" hat einen Link zum Hauptmenü zurück.

Folgendes funktioniert:
Ich kann die Gruppe aus der Datenbank bzw. Drop-Down-Liste wählen, den Button "Gruppe löschen" klicken. Der funktioniert auch einwandfrei. Nach dem der Button geklickt wurde, wird folgender Text angezeigt:

"Soll die Gruppe wirklich gelöscht werden?"
Button: "Ja"; Button "Nein"

Wenn man jetzt auf einen der beiden Buttons klickt, geht es zwar weiter aber es wird keine Aktion ausgeführt. Er überspringt scheinbar meine if-Anweisung!?
Hat vielleicht jemand eine Idee?
Vielen Dank!!
michachen91 ist offline   Mit Zitat antworten
Alt 07.09.2011, 15:31  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von michachen91 Beitrag anzeigen
Hat vielleicht jemand eine Idee?
Idee: Nicht die Hälfte der Antwort ignorieren.


Zitat:
Wenn man jetzt auf einen der beiden Buttons klickt, geht es zwar weiter aber es wird keine Aktion ausgeführt. Er überspringt scheinbar meine if-Anweisung!?
„Scheinbar“ ist bei der Untersuchung eines Problems vollkommen fehl am Platze.

Kontrolliere das Verhalten des Scriptes.
Noch mal: Variableninhalte ausgeben lassen, und Wunsch und Wirklichkeit miteinander abgleichen.
Und auch in welche Verzweigungen hinein gesprungen wird oder auch nicht, lässt sich mit simplen Kontrollausgaben a la
PHP-Code:
if(...) {
  echo 
'jetzt bin ich im Zweig XY';
  ...

sehr simpel nachvollziehen, so dass „scheintbar“ aus der Problembeschreibung eliminiert werden kann.


Wenn du das umgesetzt hast, und immer noch zu keinem aufschlussreichen Ergebnis gekommen sein solltest - dann kontrolliere die Datenbankabfragen.
Ebenfalls zur Kontrolle ausgeben lassen, und per Copy&Paste über phpMyAdmin o.ä. testen.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 07.09.2011, 15:40  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Du musst bedenken, das es mit deiner reinen PHP Lösung ZWEI Requests gibt!
1. Request: Formular mit SELECT
2. Request: Formular "Wollen Sie wirklich löschen?"

Im zweiten Formular MUSS groupName nochmal mitgesendet werden (z.B. per hidden Field), damit das Script beim zweiten Mal auch wieder über die erste if-Abfrage hinauskommt. Bedenke: Wenn das zweite Formular bestätigt wird, werden nur die Werte gesendet, die in diesem Formular enthalten waren... ohne weiteres Zutun deinerseits weiß dein Script nichts mehr von einer vorherigen Ausführung.
Zitat:
PHP-Code:
    if (isset($_POST["groupName"])) 
    { 
        echo 
"<form ".
                 
" method=\"post\" ".
                 
" accept-charset=\"ISO-8859-1\">";
        echo 
"<br>";
        echo 
"Wollen Sie die Gruppe wirklich löschen?<br>\n";
        echo 
"<input type=\"submit\" name=\"ja\" value=\"Ja\">";
        echo 
"<input type=\"submit\" name=\"nein\" value=\"Nein\">";
        echo 
"<br>";
        echo 
"<br>";
        echo 
"</form>\n";
    
        if (isset(
$_REQUEST["ja"])) 
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 07.09.2011, 15:56  
Neuer Benutzer
 
Registriert seit: 07.09.2011
Beiträge: 3
PHP-Kenntnisse:
Anfänger
michachen91 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von lstegelitz Beitrag anzeigen
Du musst bedenken, das es mit deiner reinen PHP Lösung ZWEI Requests gibt!
1. Request: Formular mit SELECT
2. Request: Formular "Wollen Sie wirklich löschen?"

Im zweiten Formular MUSS groupName nochmal mitgesendet werden (z.B. per hidden Field), damit das Script beim zweiten Mal auch wieder über die erste if-Abfrage hinauskommt. Bedenke: Wenn das zweite Formular bestätigt wird, werden nur die Werte gesendet, die in diesem Formular enthalten waren... ohne weiteres Zutun deinerseits weiß dein Script nichts mehr von einer vorherigen Ausführung.
Wie gesagt, ich kenn mich in PHP nicht sehr gut aus. Hast du evtl. eine Lösung für mich?
michachen91 ist offline   Mit Zitat antworten
Alt 07.09.2011, 16:02  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ach jeh, wo soll das wohl hinführen. Was „Wie gesagt, ich kenn mich in PHP nicht sehr gut aus.“ bedeutet, wissen wir wohl alle.

[MOD: verschoben]
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online   Mit Zitat antworten
Alt 20.10.2011, 23:09  
Benutzer
 
Benutzerbild von phildaking
 
Registriert seit: 21.08.2010
Beiträge: 50
PHP-Kenntnisse:
Fortgeschritten
phildaking befindet sich auf einem aufstrebenden Ast
Standard

Lern php!
http://php-einfach.de/
__________________
mi Blog auf Google+ :
phildaking ist offline   Mit Zitat antworten
Alt 28.10.2011, 15:02  
Erfahrener Benutzer
 
Registriert seit: 06.12.2009
Beiträge: 115
PHP-Kenntnisse:
Fortgeschritten
luks2com zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Da dir keiner eindeutig geholfen hat sag ich dir kurz was du ändern musst damit es funktioniert
PHP-Code:
        echo "<form "
                 
" method=\"post\" "
                 
" accept-charset=\"ISO-8859-1\">"
        echo 
"<br>"
        echo 
"Wollen Sie die Gruppe wirklich löschen?<br>\n"
        echo 
"<input type=\"submit\" name=\"ja\" value=\"Ja\">"
        echo 
"<input type=\"submit\" name=\"nein\" value=\"Nein\">"
        echo 
"<br>"
        echo 
"<br>"
        echo 
"</form>\n"
Am einfachsten ist es, wenn du in dieses Formular einfach ein verstecktes Feld einarbeitest:
PHP-Code:
echo '<input type="text" name="groupName" value="'.$_POST['groupName'].'" style="display:none;" />'
luks2com ist offline   Mit Zitat antworten
Alt 29.10.2011, 22:15  
Erfahrener Benutzer
 
Registriert seit: 18.01.2009
Beiträge: 128
PHP-Kenntnisse:
Fortgeschritten
CPCoder wird schon bald berühmt werden
Standard

Zitat:
Zitat von luks2com Beitrag anzeigen
Am einfachsten ist es, wenn du in dieses Formular einfach ein verstecktes Feld einarbeitest:
PHP-Code:
echo '<input type="text" name="groupName" value="'.$_POST['groupName'].'" style="display:none;" />'
Wie war das noch einmal mit deinen Kenntnissen? Fortgeschritten? Ich glaube auch im HTML-Bereich bist du von diesem Kenntnisstand noch etwas entfernt!

Bevor ich ein Formelement mittels CSS ausblende, nutze ich lieber gleich ein richtiges verstecktes Formelement:

Code:
<input type="hidden" name="...." value="....">
CPCoder ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Submit innerhalb des Span funkioniert nicht ~fransen~ PHP Einsteiger 5 04.01.2011 13:03
[Erledigt] 2 submit 1 action poedel PHP Tipps 2010 8 02.11.2010 13:31
[Erledigt] ie6 submit per enter --&gt; hidden field, aber bei submit buttons? taurus HTML, Usability und Barrierefreiheit 4 07.12.2009 23:11
onClick + overlays aber ohne submit Chili-Schaf JavaScript, Ajax und mehr 2 04.12.2009 12:12
[Erledigt] onclick submit Feldinhalt wird nicht übertragen FreddyS PHP Tipps 2009 11 07.07.2009 13:15
[Erledigt] submit button wechseln wenn sid in DB vorhanden fulltilt PHP Tipps 2009 5 20.02.2009 16:32
[Erledigt] Eingabetextfeld verschwindet nach 'Submit' Jasper PHP Tipps 2009 14 16.02.2009 18:40
submit erst nach JS Passwortabfrage? ACiD JavaScript, Ajax und mehr 6 28.10.2008 16:09
form action wird vor submit ausgeführt abcluberer PHP Tipps 2008 5 14.05.2008 10:32
Plausiprüfung bei submit PHP Tipps 2005 2 27.05.2005 11:14
button (submit) ->action auf https PHP Tipps 2005 7 18.04.2005 18:32
Submit als Link Bronks HTML, Usability und Barrierefreiheit 2 03.01.2005 15:44
[b]text automatisch bei submit in textfeld einfügen[/b] PHP Tipps 2004-2 10 05.12.2004 13:44
Greenhorn: Reload einer IMG-Datei nach SUBMIT einer Form PHP Tipps 2004 3 20.09.2004 21:19
Form nach submit PHP Tipps 2004 1 02.06.2004 13:12

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
möchten sie dieses formular wirklich nochmals absenden? löschen, wenn submit echo

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:28 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum