Frage von Philinski, 37

Wie kann ich in PHP mehrere neu generierte Werte in einem Array speichern?

Wie kann ich in PHP mehrere neu generierte Werte in einem Array speichern und auf einer anderen Seite wieder ausgeben? So sieht mein Quelltext aus mit dem ich dieWerte generiert habe.

<?php for ($i=1; $i<$teil+1; $i++) { ?>

<input name="Lehrling<?php echo $i ?>" type="text" value="Lehrling <?php echo $i ?>">

<input name="Punkte<?php echo $i ?>" type="text" placeholder="Erreichte Punktzahl" value="<?php echo rand(1,$punk); ?>">

<input name="Haus" type="text" value="<?php echo $array[rand(0,3)] ?>" readonly>

<?php } ?>

In $teil wird eine Zahl gespeichert und so oft wird eben die Schleife wiederholt. Wie kann ich un diese Werte in einem Array speichern und übergeben? Oder gibt es einen anderen Weg? Mit einer Datenbank darf in der Aufgabe nicht gearbeitet werden.

Antwort
von maximilianus7, 12

du hast noch ein ganz anderes problem: deine code ist durch die <?php -verschachtelung total unleserlich für die kollegen hier (jedenfalls für mich).

du tust für dich (und für zukünftige fragen auch für uns) einen gefallen, wenn du erst mal eine hauptregel
einhälst: ein <?php and den anfang und ein ?> am ende. html ausgaben mit echo ausgeben. einen grösseren block
kann man auch mit heredoc-syntax ausgeben:

echo <<<EOT 
html text <input .... $variablen werden auch hier aufgelöst, wie in echo "...."
<br> etc.
EOT; # muss in der 1. spalte stehen - blöd

unterbrechungen des <?php modus kann sinnvoll sein, wenn ein wirklich grosser html-block eingeschoben wird, mit vielleicht sporadischen stellen, in der php-variable mit <?php echo "$x"; ?> eingeschoben werden.  

habt ihr diese verschachtelung so gelernt? das wäre ja furchtbar.


Antwort
von maximilianus7, 12

zum 2. teil deiner frage: (übergabe an ein anderes script)

ich nehme an, dass zwischen den scripts dialogaufrufe stehen. dann muss das ganze innerhalb einer session geschehen. das start-script eröffnet die session mit start_session();

dann gibt es noch ein spezielles array $_SESSION[] . in diesem kannst du werte abspeichern, die session-übergreifend erhalten bleiben sollen. entweder als einzelwerte:

$_SESSION['teil1'] = $teil1;
$_SESSION['teil2'] = $teil2;
...
oder als array:
$_SESSION['teile'] = $array;

beim session ende ist dann alles weg. die session wird vom server nach einer gewissen zeit (meistens 1/2 stunde) nach inaktivität aufgelöst.  

Antwort
von triopasi, 34

$array =[];
For(...)
$array[]=$i;

Meinste das? Und auf welche Seite willste das übergeben? Wirklich neue Seite oder nur anderes Script was du mit include einbindest?

Kommentar von Philinski ,

Ich will das an ein anderes PHP Skript weitergeben und dort dann wieder ausgeben.

Eine Zeile in der Schleife sieht so aus (input name="Punkte<?php echo $i ?>" type="text" placeholder="Erreichte Punktzahl" value="<?php echo rand(1,$punk); ?>">)

Kommentar von triopasi ,

Ist das ganze n Formular?

Kommentar von Philinski ,

Ja. Ich weiß nicht wie ich das in dem anderen skript wieder alles ausgeben kann.

Kommentar von triopasi ,

Du übergibts ja "Lehrling1", "Lehrling1", "Lehrling3" sowie  "Punkte1", "Punkte2", "Punkte3". Dann musst du zusätzlich (input type=hidden) noch den höchsten Index (hier: 3) übergeben.

Das andere Script kann dann sagen [Pseudocode kein echtes PHP!]:
$max = $_GET["maxIndex"];

// alle Lehrlinge ausgeben

for($i = 1 bis $max)

{

echo $_GET["Lehrling$i"] . "<br/>";

}

Keine passende Antwort gefunden?

Fragen Sie die Community