php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.10.2005, 21:58  
Gast
 
Beiträge: n/a
Standard

Hi Der_Gerhard,

Wenn ich die das Ganze vor die if-Abfrage stelle, erhalte ich die gleiche Meldung.
Die Ausgabe muss an diese Stelle aufgerührt werden.
Ich werde später die echo Ausgabe durch eine Methode ersetzet, um Daten in der DB zu speichern.
level wurde vorher auf level1 gesetzt.

Was ich nicht raffe, ist die Tatsache, dass das obere Beispiel funktioniert und obwohl ich die Veränderung 1:1 übernommen habe, ich immer noch eine Fehlermeldung erhalte.


Die Sache mit HTML werde ich in ordnung bringen.


Hier befindet sich die gesamte Quelle:
http://nopaste.php-q.net/167169

Als erstes starte ich diese HTML Datei.

PHP-Code:
<?php

<table>
    <
form method="post" action="index.php?action=frage_anzeigen">

    <
tr><td><select name="level_auswahl" size="7">
    <
option selected value="level1"Level 1
    
<option value="level2"Level 2
    
<option value="level3"Level 3

    
<option value="random_level1"Random Level 1
    
<option value="random_level2"Random Level 2
    
<option value="random_level3"Random Level 3
    
<option value="random_all"Random Level 1-3
    
</select></td></tr>

    <
tr><td>
</
td></tr>

    <
tr><td><input type="submit" value="Start"></td></tr>

    </
form>
</
table>
?>
Die HTML Datei sendet die Anfrage an: action=frage_anzeigen (Zeile 193)
Anschliessend wird die Zeile 37 aufgerufen und in 71 fängt das roblem an.
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 22.10.2005, 22:14  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

MOOOOOOOOOOOOOOOMENT mal....
Mir schwant da was...

Sehe ich das richtig, dass Du
- Die obige HTML-Seite aufrufst,
- dort Level1 auswählst und dann
- Submit drückst.
...
- Dadurch das Script aufgerufen wird und
- Du gerne in $REQUEST['antwort0'] etwas sehen möchtest?

Hab ich da einen Schritt vergessen?
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 22.10.2005, 23:41  
Gast
 
Beiträge: n/a
Standard

Hi

1. html Seite wird aufgerufen
2. Zeile 192/194 wird aufgerufen
3. Zeile 196 die Methode wird aufgerufen
4. Zeile 86 befindet sich die Methode aus der Zeile 196
5. Zeile 109 wird aufgerufen (Methode)
6. Zeile 37 beindet sich die Methode

Hier wird level1 für die Erzeugung eingesetzt.
Hier wird html erzeugt und die Zeile 192/194 erneut aufgerufen.

Und genau hier funktioniert die Übergabe nicht

Gruß
Aaron
 
Alt 22.10.2005, 23:49  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Alsooooo...
du rufst die HTML-Seite auf und drückst dort auf den Submit-Button.
-> Das Script, das man unter Deinem Link finden kann, wird aufgerufen.
Was da an Parameter übergeben wird, hast Du ja mit $_REQUEST ausgegeben.
-> In Zeile 194: Aufruf der Funktion
.... Ausgabe eines neuen Formulars (dort enthalten: antwort0, antwort1,...)
.... Rückkehr zu Zeile 196
.. Jetzt erwartest Du, dass antwort0 etc. in $_REQUEST steht...

Im Klartext:
Nur weil Du in der Funktion ein neues Formular ausgibst, soll sich der $_REQUEST des aktuellen Aufrufs ändern?
So wird das nix!

Ohne dass Du da auch mal das neu ausgegebene Script ausfüllst und auf Submit drückst, geht da nix.
Zwei Formulare->zweimal Submit.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 23.10.2005, 00:01  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
<?php
    
// Html Seite mit Frage + Antworten werden erzeugt
    
echo "<html>";
    echo 
"<body>";
    echo 
"$fragestellung";
    echo 
"<table>";
    echo 
"<form method='post' action='index.php?action=frage_anzeigen&level_auswahl=$level'>";
    
// Antworten + checkboxen werden erzeugt. 
    
for($i=0$i<=sizeof($naechste_frage_antworten)-1$i++) {
        echo 
"<tr><td><input type=checkbox name='antwort$i'></td><td>$naechste_frage_antworten[$i]</td></tr>";
        echo 
"
"
;
    }
    echo 
"</table>";
    echo 
"
"
;
    echo 
"<input type=submit value=weiter></input>";
    echo 
"</form>";
    echo 
"</body>";
    echo 
"</html>";
?>

antwort$i <-- das hier erhält als Wert 'antwort0' bis 'antwort3'

Weiter unten befindet sich der Sebmit Button.
echo "<input type=submit value=weiter></input>";

Wenn ich submit drücke, soll 'antwort0' verschickt werden.

echo "
Antwort: ".$_REQUEST['antwort0']; soll in der Zeile 201 diese Antwort entgegen nehmen.

In diesem Beispiel funktioniert das Ganze:
PHP-Code:
<?php
echo "<html><body>";

echo 
"<table><form method=post action='box2.php?action=frage_anzeigen&level_auswahl=level1'>";

for(
$i=0$i<=1$i++) {
    echo 
"<tr><td><input type=checkbox name='antwort$i'></td><td>Antwort $i</td></tr>";
    echo 
"
"
;
}
echo 
"</table>
"
;
echo 
"<input type=submit value=weiter>";
echo 
"</form></body></html>";




if (
$_REQUEST["action"] == 'frage_anzeigen') {

    if (
$_REQUEST["level_auswahl"] == 'level1') {
        echo 
"
"
;
        echo 
"
Antwort: "
.$_REQUEST['antwort0'];
        echo 
"
Antwort: "
.$_REQUEST['antwort1'];
        
        echo 
'<pre>';
        
print_r($_REQUEST);
        echo 
'</pre>';
    }
}
?>
Aber im Hauptprogramm funzt das Ganze nicht.

Gruß
Aaron
 
Alt 23.10.2005, 00:31  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Ich hab vorhin mal gefragt, ob ich nen Schritt vergessen hab.
Nochmal gezielt:
Wie oft klickst Du einen Submit-Button an?
einmal oder zweimal?

Nach Deinen Beschreibungen rufst Du nach der HTML-Seite das Script nur einmal auf.
Dabei wird das zweite Formular ausgegeben.
Schickst Du das zweite Formular dann ab oder nicht?
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 23.10.2005, 01:42  
Gast
 
Beiträge: n/a
Standard

Ich rufe insgesamt 2x submit auf.

1x HTML Datei um das Ganze zum laufen zu bringen.
1x in der Zeile 76 um 'antwort0' an die Zeile 194 zu senden.

Daher Schicke ich die dynamisch erzeugte HTML Seite auch ab.

Gruß
Aaron
 
Alt 23.10.2005, 02:03  
Gast
 
Beiträge: n/a
Standard

@Der_Gerhard

Vielen Dank für deine Zeit.. habe den Fehler soeben gefunden.

Die Beiden haben bei dem ersten Aufruf kein Wertzuweisung -> Fehlermeldung.
Sobald ich die boxen markieren und submit betätige, wird die Ausgabe angezeigt.

echo "
Antwort: ".$_REQUEST['antwort0'];
echo "
Antwort: ".$_REQUEST['antwort1'];

Lösung:
PHP-Code:
<?php
if(isset($_REQUEST['antwort0'])) {
    echo 
"
Antwort: "
.$_REQUEST['antwort0'];
}
?>
Gruß
Aaron
 
Alt 23.10.2005, 02:10  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Das mit dem 2. Submit wollte ich rauskriegen.

Eigentlich sieht der Code ganz gut aus.
Sind auch einige der Checkboxes angewählt beim Abschicken?
Sieht der dynamisch erzeugte HTML-Quelltext gut aus? Evtl. mal das generierte Formular zeigen.
Was steht beim zweiten Aufruf des Scripts in $_REQUEST.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 23.10.2005, 02:20  
Gast
 
Beiträge: n/a
Standard

Hi

Gratz zu Posting Nr 1000

Bezüglich Code wollte ich dich eh noch ansprechen.
Bin ein PHP Anfänger. Daher kann ich schlecht sagen, ob ich den Code sauber Programmiert habe.

$_REQUEST hat nach dem zweiten submit (sofern die checkboxen markiert wurden) den wert 'on'.

PHP-Code:
<?php
        
if(isset($_REQUEST['antwort0'])) {
            if(
$_REQUEST['antwort0']=='on') {
                echo 
"
Antwort: "
.$_REQUEST['antwort0'];
            }
        }
?>
Gruß
Aaron
 
 


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
Timestamp problem phrain PHP Tipps 2008 2 04.04.2008 09:41
checkbox problem haufe PHP Tipps 2008 6 18.02.2008 16:32
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
Check my Checkbox JanM PHP Tipps 2006 4 04.02.2006 17:44
checkbox problem test022 PHP Tipps 2006 18 25.01.2006 21:59
[Erledigt] Problem beim Auslesen von Checkbox Values PHP Tipps 2007 16 09.12.2005 09:38
checkbox .. mehrere werte auslesen bei gleichem namen PHP Tipps 2005-2 9 12.10.2005 15:24
[Erledigt] Problem mit Backslash Patrick Schwarz PHP Tipps 2005-2 5 26.07.2005 09:54
[Erledigt] Problem mit User/Group: nobody(99)/99 Server, Hosting und Workstations 3 09.07.2005 15:31
[Erledigt] Checkbox Problem mit JavaScript und PHP HTML, Usability und Barrierefreiheit 3 26.10.2004 20:03
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
Checkbox Problem PHP Tipps 2004 2 12.08.2004 13:20
Problem beim Upload mehrerer Dateien per Script PHP Tipps 2004 1 04.08.2004 16:26
checkbox problem PHP Tipps 2004 0 14.07.2004 23:11


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:44 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.