1

私はphpでHTMLテーブルを生成するこのコードを持っています:

<?php 
include("numbers2.php");

echo '<table border="1">';
 echo '<tr>';

for ($i = 1; $i <= 9; $i++) {
if($a1_pos_txt !== TRUE) {

echo "<td>" . $numbers["a" . $i . "_pos"] . "</td>";

} else {?> 
<?php 
echo '<td><input type="text" name="a' . $i . '_post" size="1" maxlength="1" /></td>';
?>
<?php } }?>

私がする必要があるのは、毎回$a1_post_txtではなく、床がループしたときに取得するように変数を変更することです。$a1_pos_txt

$a1_pos_txt
.
.
$a9_pos_txt

私は基本的に私が使ったもの$numbers["a" . $i . "_pos"]と使ったものname="a' . $i . '_post"ですが、変数が別の変数の中にあるので、これを行う方法がわかりません。

十分に明確であることを願っています。そうでない場合は、必要な説明を求めてください。

前もって感謝します!!

4

6 に答える 6

2

変数の代わりに配列を使用します。配列には、以前は$ a1_pos_txt ......$a9_pos_txtにあったtrueやflaseなどの値が含まれます。

$arrOfValues[1] = TRUE;
$arrOfValues[2] = FALSE;
 ......
 .....
 ...
$arrOfValues[9] = TRUE;

したがって、コードは次のようになります

<?php 
include("numbers2.php");

 echo '<table border="1">';
  echo '<tr>';

for ($i = 1; $i <= 9; $i++) {
if($arrOfValues[$i] !== TRUE) {

 echo "<td>" . $numbers["a" . $i . "_pos"] . "</td>";

} else {?> 
<?php  
echo '<td><input type="text" name="a' . $i . '_post" size="1" maxlength="1" /></td>';
?>

于 2010-11-19T13:33:17.633 に答える
1

誰かが変数変数を提案しました-彼らはひどいです!それらを使用しないでください!(コードの読み取りと保守が非常に困難になり、セキュリティの問題が発生する可能性があります)。

他の誰かが使用を提案しましたeval()-絶対にそれを使用しないでください!! (使用evalは、事実上すべての可能な状況で非常に不適切な方法と見なされます。セキュリティの問題が発生する可能性が非常に高くなります)

名前付き変数の代わりに配列を使用することを提案した人もいます。これが正しい解決策です。

すでにでそれを行った$numbersので、post変数で同様のことを行うことができますか?

それらが取得したHTMLコードに関連している場合は、name="a' . $i . '_post"このコードを変更して、代わりに変数を投稿することができます-次のようになります。

name="a_post['.$i.']"

a1_post次に、 andなどの名前の投稿変数を使用する代わりに、などの名前の投稿変数を使用しa2_postます。これらは配列であるため、ループするのが非常に簡単になります。a_post[1]a_post[2]

于 2010-11-19T13:42:59.620 に答える
1

動的変数を使用できます。

<?php
    $test = 'a';
    echo ${'test'}; 
?>

「a」が表示されます。

したがって、変数名を文字列として作成し、その値を取得できます。

于 2010-11-19T13:24:24.950 に答える
0

http://php.net/manual/en/function.eval.php

eval関数はあなたが望むことをします。

于 2010-11-19T13:21:27.760 に答える
0

単一の変数を配列に置き換える必要があると思います。つまり、作成する代わりに

$ a1_pos_txt ... $ a9_pos_txt

次のようなものを使用できる配列が必要です。

if($ myVar [$ i]!== true){...}

フラグ変数をどこでどのように初期化していますか?

チャーリー

于 2010-11-19T13:21:46.353 に答える
0

http://us2.php.net/manual/en/language.variables.variable.php

変数変数はあなたが望むことをします。

于 2010-11-19T13:30:29.303 に答える