PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2 Variablen verbinden = nur Text?



JDieskau
07-03-2004, 16:03
Hallo erstmal :D

Also, ich habe hier Variablen wie zum Beispiel $dicon11, das sind koordinaten in ner Tabelle. Naja, ist ja auch eigentlich egal, die Variablen gehen von 10 bis 90, also zum Beispiel $dicon10 bis $dicon90!

So, nun, da das ziehmlich viel sein würde das 80 Mal fast das gleiche zu schreibe, und immer nur die eine kleine Zahl zu ändern wollte ich eine Schleife machen (while).
Also so ungefähr:



<?
$x="10";
while($x < 20){
?>
<form name="position1" action="desktop.php" method="get">
<INPUT type="hidden" name="x1" size="9" value="<? echo $_GET[x1]; ?>">
<input type="hidden" name="y1" size="9" value="<? echo $_GET[y1]; ?>">
<input type="hidden" name="x2" size="8" value="<? echo $_GET[x2]; ?>">
<input type="hidden" name="y2" size="9" value="<? echo $_GET[y2]; ?>">
<td><p align="center"><INPUT TYPE="image" NAME="I1" VALUE="1" SRC="./../icons/<? echo "$dicon$x; ?>.png"><br><? echo "$dicon$x; ?></p></td>
<input type="hidden" name="newapp" size="9" value="<? echo $dbefehl$x; ?>">
</form>
<?
$x=$x+1;
}


Wie bstimmt shin aufgefallen geht das nicht! Da $dicon$x leider nicht geht, die Variable $dicon existiert nicht und es würde somit nur $x angezeigt werden.

Dann hab ich mir das hier überlegt:



<?
$x="10";
$dicon=dicon;
$test="$$dicon".$x;
while($x < 20){
?>
<form name="position1" action="desktop.php" method="get">
<INPUT type="hidden" name="x1" size="9" value="<? echo $_GET[x1]; ?>">
<input type="hidden" name="y1" size="9" value="<? echo $_GET[y1]; ?>">
<input type="hidden" name="x2" size="8" value="<? echo $_GET[x2]; ?>">
<input type="hidden" name="y2" size="9" value="<? echo $_GET[y2]; ?>">
<td><p align="center"><INPUT TYPE="image" NAME="I1" VALUE="1" SRC="./../icons/<? echo "$$dicon".$x; ?>.png"><br><? echo "$$dicon".$x; ?></p></td>
<input type="hidden" name="newapp" size="9" value="<? echo "$$dbefehl".$x; ?>">
</form>
<?
$x=$x+1;
}

Nun, ok, die Ausgabe ist nun $dicon10, also eigentlich richtig, aber das ding hat nun keinen Wert mehr, es ist nur noch text! Bei echo "$$dicon".$x; kommt dann nur $dicon11 zum Beispiel raus. Also ist das keine Variable mehr.

Wie kann ich das nun machen?
Danke schonmal...

undefined
07-03-2004, 16:26
Denke nicht so Kompliziert ;) Ein Arbeiten mit Arrays ist hier wesentlich einfacher.


$obj = range(a, f);
$str = "";
foreach ($obj AS $k => $v) {
$str .= "<input type=\"text\" name=\"inhalt[" . $k . "]\" value=\"" . $v . "\"/>\n";
}
echo $str;

JDieskau
07-03-2004, 17:28
@undefined: Ähmm, ja, super, aber was bringt mir das? Ausser vielleicht das es etwas sauberer und kürzer ist
Was ich erreichen wollte kann ich damit genauso wenig...

Naja, auf jedenfall bringt das genauso wenig, nämlich nix!

mehlvogel
07-03-2004, 18:10
Denk mal ein wenig drüber nach was undefined dir gesagt hat, das ist schon der richtige weg, denn genau diesen Anwendungszweck haben arrays, hast du die Daten net in einem Array dann solltest du dir mal drüber gedanken machen

Zu deiem problem würde ich es prinzipiell so machen, achtung pseudo code, also kopf einschalten bevor angewendet wird.



while x < 20
$bla = $dicon.$x;
echo $$bla;

sixfriends
07-03-2004, 22:00
Arrays sind auf jeden Fall der bessere Weg, aber veränderliche Variablennamen würd ich etwa so lösen

$x = 10;
$temp = 'dicon'.$x;
$inhaltVonDicon10 = $$temp;