You are not logged in.

  • Login

Dear visitor, welcome to Coder Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Sunday, November 8th 2009, 8:18pm

Arraydefinition und Formular

Hallo zusammen,

Ich würde gerne per Formular + Button den Formularinhalt in ein Array schreiben.
Danach würde ich gerne den Arrayinhalt ausgeben lassen.
Logisch scheint hier alles richtig, aber irgendwie wird immer der erste Eintrag überschrieben:


Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="get">
	<input name="text" size="100" maxlength="100">
	<input type="submit" name="Okay" value="Okay"> 
	<?php array_push($meldung, $_GET['text']); ?>
</form>

<!--------- AUSGABE ----------------->
 
<hr>

<?php 
	//echo array_sum($meldung) + "<br>";
	for($count = 0; $count <= array_sum($meldung)-1; $count++){
		echo $meldung[$count] . " "; 
		echo "<br>--------------------------------------------------";
	}	  

?>


Das Array wird auch außerhalb definiert und wird included, sodass es nicht überschrieben werden sollte.
Da das Array (im Vorfeld) keine bestimme Länge hat, würde ich gerne mit array_sum($meldung)-1 die For-Schleife begrenzen.


Weiß jemand, was hier schief gelaufen sein könnte?

Danke

2

Sunday, November 8th 2009, 9:04pm

Hi. Schreib in deine zeile 1 mal

error_reporting(E_ALL)

Dann solltest du ein paar warnungen sehen.

Validiere deinen html code außerdem mal bei validator.w3.org, dann findest du ein paar fehler.

Lg

3

Monday, November 9th 2009, 10:23am

Hallo,

danke.
Die php Fehler sind soweit alle raus. Validiert ist der Code noch nicht, da er nur lokal verfügbar ist und ich ihn noch nicht hochgeladen habe.
erkennt denn dein /ein geschultes Auge, dass mein Arrayfehler am HTML Code liegt, oder ist das nur ein zusätzliches Feature (das Validieren) ?

Kann es sein, dass er aus dem indizierten array ein assozitives wurde und ich durch den Schlüssel "test" (Name des Formulars) immer wieder den 1. Eintrag lösche?

Danke

4

Monday, November 9th 2009, 6:41pm

willst du denn wirklich array_sum Benutzen? Summierst du zahlen? Oder suchst du count() ?

PHP Quellcode

1
2
for($i = 0; $i < count($meldung); $i++){
		echo $meldung[$i];

5

Monday, November 9th 2009, 8:14pm

jo, hatte count() schon gefunden, nur oben noch nicht geändert. sry

//edit:
wieso ist das Ding hier als "gelöst" gesetzt? ich fände noch nicht einmal ein Button, mit dem ich es wieder auf "ungelöst" setzen könnte.

This post has been edited 1 times, last edit by "ali g" (Nov 9th 2009, 10:28pm)


6

Tuesday, November 10th 2009, 7:44am

Ich weis ja nicht, ob ich dir Folgen kann aber was ist den mit foreach?


PHP Quellcode

1
2
3
4
foreach($meldung as $key => $row)
{
  echo $key . " => " . $row;
}
Latest blogs Latest blogs: Bloggen...

7

Tuesday, November 10th 2009, 5:09pm

?? mit meiner Schleife klappt doch alles.
Ich hatte deine Antwort so interpretiert, als hättest du das bestätigt.

Ich habe das Thema wieder als "nicht beendet" markiert.
Der Button müsste ganz unten, neben "Thema abonnieren" sein. Bin leider auch noch nicht so vertraut mit der Funktion, da ich das Feature erst kürzlich installiert habe

8

Tuesday, November 10th 2009, 5:15pm

Quoted


Der Button müsste ganz unten, neben "Thema abonnieren" sein. Bin leider auch noch nicht so vertraut mit der Funktion, da ich das Feature erst kürzlich installiert habe

das war aber gestern noch nicht da :D


Naja, es klappt an sich, allerdings wird nur 1 Wert in meinem Array gespeichert. Wenn ich einen neuen eingeben will, wird der Alte überschrieben. Daher dachte ich daran, dass daraus evtl. ein assoziatives Array gemacht wurde, und er den Wert mit dem Schlüssel "text" immer wieder überschreibt.


Danke

9

Tuesday, November 10th 2009, 6:16pm

Dann musst du die Daten entweder per GET oder per SESSION durchreichen, oder oder die Daten in einer DB speichern.
Hier mal die Session Variante:

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
session_start();
$_SESSION['meldung'] = isset($_SESSION['meldung']) ? $_SESSION['meldung'] : array();
 
if(isset($_GET['text'])) {
	$_SESSION['meldung'][] = $_GET['text'];
}
?>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="get">
	<input name="text" size="100" maxlength="100">
	<input type="submit" value="Okay"> 
</form>
 
<!--------- AUSGABE ----------------->
<hr>
<?php
	$meldung = $_SESSION['meldung'];
	for($count = 0; $count < count($meldung); $count++){
		echo $meldung[$count] . " "; 
		echo "<br>--------------------------------------------------<br/>";
	}	  
 
?>

Social bookmarks