indrador
Goto Top

Problem bei Formular mit 2 verschiedenen Submit Buttons

Hallo ihr Lieben,

ich habe folgendes "Problem":
Ich bin eigentlich im Bereich php/html nicht zu Hause, wollte mich allerdings doch mal an sowas versuchen,
dank google, Forum und Co. bin ich bisher ganz gut zurecht gekommen, mein Script ist sicherlich was die
Performance und Codereinheit angeht ein Desaster allerdings möchte ich erstmal was funktionierendes haben und danach
grobe Schnitzer ausmerzen und Feinheiten ausbügeln.
Nun stehe ich allerdings vor einem Problem, das mir zu Hoch ist, da die Erfahrung zu wünsche übrig lässt.
self-php, Foren usw. habe ich zu genüge gelesen und fast immer alles Lösen können, nun hänge ich:

Also ich habe ein Formular,

auf diesem Formular gibt es 3 Inputfelder und
2 versteckte zur Syntaxprüfung, ebenfalls gibt es 2 Submit Buttons (den Kalendar kann man außer acht lassen, der funktioniert).
Ich möchte nun in der ersten Box eine Zahl eingeben und über den submit direkt darunter eine Query starten.
Auf Basis des Resultsets (immer nur 1 Datensatz da unique auf Nr) dieser Abfrage sollen dann die 2 unteren Felder readonly befüllt werden zur visuellen Kontrolle.
nach betätigen des zweiten Buttons soll dann eine weitere Query, die auch auf der Nummer des ersten Feldes beruht, gestartet werden.
Am Ende wird noch eine Mail generiert und eine Ausgabe für den User.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<html>
<head>
<title>Test</title>
<link rel="stylesheet" type="text/css" href="http://localhost/test/style.css">  
<link rel="STYLESHEET" type="text/css" href="http://localhost/test/scripts/dhtmlxcalendar.css">  
<script type="text/javascript" src="http://localhost/test/scripts/calendarDateInput.js"></script>  
</head>

<body><div id="center">  
 <?php
 if(isset($_POST['suchen'])) 	{	  
													$allesok = 1;
													if(empty($_POST['nr'])){  
													$allesok = 0; 
													$error['nr'] = "<font color=\"red\">Bitte eine Nr eingeben!</font>";}   
													if(strlen($_POST['nr'])<3){  
													$allesok = 0;
													$error['nr'] = "<font color=\"red\">Bitte die Länge der Nr prüfen zu wenig Stellen!</font>";}  
													if(strlen($_POST['nr'])>4){  
													$allesok = 0;
													$error['nr'] = "<font color=\"red\">Bitte die Länge der Nr prüfen zu viele Stellen!</font>";}  
								} 
											
if($allesok) {  ?>
<?php
													echo $con = mysql_connect("localhost","user","abcd1234");  
													if (!$con)
													{
													die('Could not connect: ' . mysql_error());  
													}
													$db = mysql_select_db("test", $con);  
													$sql="Select x from test where Nr = '$_POST[nr]'";  
													if (!mysql_query($sql,$con))
													{
													die('Error: ' . mysql_error());					  
													}
													mysql_close($con) 
?>
											

 
<?php }
if(isset($_POST['ueberpruefung'])) 	{ 	  
													$check = 1;
													if(empty($result['test1'])){  
													$check = 0; 
													$error['nr'] = "<font color=\"red\">Fehler1!</font>";}  
									}										
if($check) { ?> 
<?php
													echo $con = mysql_connect("localhost","user","abcd1234");  
													if (!$con)
													{
													die('Could not connect: ' . mysql_error());  
													}
													$db = mysql_select_db("test", $con);  
													$sql="Update test   
															set x = 0
															where Nr = '$_POST[nr]'";  
													if (!mysql_query($sql,$con))
													{
													die('Error: ' . mysql_error());					  
													}
													mysql_close($con) 
?>
 
				<?php
  $dbh = mysql_connect("localhost","user","abcd1234");  
  $db = mysql_select_db('test');  
  $query = mysql_query("SELECT 	test1,   
		test2 where Nr = '$_POST[nr]'");  
  while($result = mysql_fetch_array($query)) {
	echo "<table>\n";   
	echo "\t<tr>\n";  
	echo "\t<td>Ihre Anfrage wurde versandt</td>\n";  
	echo "\t</tr>\n";    
	echo "</table>\n";  
	echo <table><tr><td> test1:</td>";  
	echo "<td>";  
	echo $result['test1'];  
	echo "</td></tr>";  
	echo "<tr><td>test2:</td>";  
	echo "<td>";  
	echo $result['test2'];  
	echo "</td></tr>";  
  }
  mysql_close($dbh);
?> 
				<?php
				$dbh = mysql_connect("localhost","user","abcd1234");  
  $db = mysql_select_db('test');  
  $query = mysql_query("SELECT 	test1, test2, from test where Nr = '$_POST[nr]'");  
  while($result = mysql_fetch_array($query)) {
				$to      = 'test@test.de';  
				$subject = 'Test';  
				$message = 'Test:			  
	test1:		'.$result['test1'].'  
	test2:		'.$result['test2'].'';  
				$headers = 'From: test2@test.de' . "\r\n" .  
				'Reply-To: test2@test.de' . "\r\n" .  
				'Bcc: test2@test.de'  . "\r\n" .  
				'X-Mailer: PHP/' . phpversion();  
				mail($to, $subject, $message, $headers);
				  }
  mysql_close($dbh);
				?>
					<?php
}
  else
  {
  ?>   
  <table width=100%>
  <tr><td align="left" valign="top"><font color="black" ><b>test<br>  
  uns per Mail zugestellt.</b></i></font></td><td align="right" valign="top"><img src="images/Logo.jpg"></td></tr>  
  <tr><td align ="Center"><br>  
  <table width = "550" bgcolor ="white">  
  <form name="Test 1" method="post" action="<?php echo $_SERVER['PHP_SELF']?>">  
	<tr><td>
					 <?php echo $error['nr'];?><br>  
					  <font color="black">Nr:</font><br>  
					  <input name="nr" type="text" size="25" value=""> <br>					    
		</td>
	</tr>
	<tr>
		<td>
		<input type="hidden" name="suchen" value="1">  
		<input type="submit" name="Test suchen" value="Suchen">  
		</td>
	</tr>
	</form>
  <form name="Test 2" method="post" action="<?php echo $_SERVER['PHP_SELF']?>">  
	<tr>
		<td>		
					<br><font color="black">test1:</font><br>  
					<input name="1test" type="text" size="25" value="<?php echo $result['test1']?>" readonly> <br>  
		</td>
		<td>			  
					<br><font color="black">test2:</font><br>  
					<input name="2test" type="text" size="25" value="<?php echo $result['test2']?>" readonly> <br>					    
		</td>
	</tr>
	<tr>
		<td><?php echo $error['edate'];?><br>  
			<font color="black">testdatum:</font><br>  
			<script>DateInput('edate', true, 'YYYY-MM-DD')</script>  
			<input type="button" onClick="alert(this.form.edate.value)" value="Datum prüfen (Jahr-Monat-Tag)"><br><br>  
		</td>
	</tr>
	
		
  <tr><td>
 <input type="hidden" name="ueberpruefung" value="1">   
  <input type="submit" name="3 test" value="Absenden">  
  
  </form>
  </td></tr></table><br></td></tr></table>
  <?php
  }
  ?>
  
  
</body> </div> </html>

Ich danke euch allen, falls ihr denkanstöße oder Codeschnipsel/Beispiele habt.
Ich glaube ich brauche es nicht so extrem vorgekaut also eine Lösung möchte ich natürlich nicht,
aber der ein oder andere Ansatz wäre nett.

Gruß an Alle

Content-ID: 150254

Url: https://administrator.de/forum/problem-bei-formular-mit-2-verschiedenen-submit-buttons-150254.html

Ausgedruckt am: 12.01.2025 um 15:01 Uhr

EvilMoe
EvilMoe 02.09.2010 um 18:34:29 Uhr
Goto Top
Dazu gibt es mehrere Möglichkeiten.

Das Einfachste wäre wenn du nachdem ersten "submit" die Daten die bis dahin verarbeitet wurden (also die eine Zahl) in ein hidden Feld schreibst.
Wenn du dann auf den 2. submit drückst kannst du die Variable wieder auslesen (nicht vergessen nochmal zu validieren!).

Das andere wäre per sessions.

Deine Variablen in einer session speichern, dann kannst du dort später wieder ran.


TIPP: Achte auf SQL Injection. NIEMALS in einem Query $_POST oder ähnliches schreiben.
Auch keine Benutzereingaben direkt ausgeben! Vorher sollte htmlspecialchars benutzt werden.