2016-08-07 11 views
1

私はフォームがテーブルフィールドに格納された値を保持できるようにするこのコードセットを持っています。配列の要素を動的にすることは可能ですか?

<?php 
    $playerpositions = Array("Coach", "Assistant Coach", "Goalkeeper", "Defense", "Midfield", "Forward"); 
?> 
<select name="playerposition" id="playerposition" class="input-field-login2" tabindex="1"> 
    <option value="-1">Select to Change</option> 
    <?php 
     foreach($playerpositions as $v) { 
      $selected = ($row_player['plyPosition']===$v) ? "selected" : ""; 
      echo "<option value='$v' $selected>$v</option>"; 
     } 
    ?> 
</select> 

私の質問は今1が配列 $playerpositions = Array("Coach", "Assistant Coach", "Goalkeeper", "Defense", "Midfield", "Forward");

$playerpositions = Array(while ($row_playersa = mysqli_fetch_assoc($result_playersa)) { 
    $playersa[] = $row_playersa; 
}); 

可能ということです以下のように動的に持つことができ、これですか?私がしようとしているのは、配列項目をハードコード化しておくのではなく、テーブルから引き出したいからです。あるいは、これを行う別の方法がありますか?

+0

? –

+0

@JohnConde私はドロップダウンに気付いたことがあります。 –

+0

データベースを使用していますか? –

答えて

0

通常、これらの種類のものをハードコーディングするのが最後の手段です。同じドロップダウンを別の場所に実装する必要がある場合はどうすればよいですか?同じ場所で複数の場所で同じコードをコピー、貼り付け、保守することなく、ある場所で型を変更して他の場所を参照することができるので、データベーステーブルからの格納と取り出しが理にかなっています。

しかし、そのような配列は作成できません。あなたはそれがこれを行うことであろうだろう方法:

// example code, not real, assume it produces 
// array("Coach", "Assistant Coach", "Goalkeeper", "Defense", "Midfield", "Forward"); 

$someQuery = "SELECT * FROM `player_positions`"; 
$playerPositions = $db->execute($someQuery); 

// other code... 

// Iterate through your playerPositions and produce your options. 
foreach ($playerPositions as $v) { 
    echo "<option value='$v' $selected>$v</option>"; 
} 
+0

'$ playerPositions = $ db-> execute($ someQuery);'(私は疑似コードと仮定しています) 'foreach'によって反復可能な配列を生成しません –

+0

'$ db-> execute($ someQuery)'から返された値が 'array(" Forward、Goalkeeper ")'であれば、 'foreach'を使ってそれを繰り返すことができます。 –

+0

あなたの解決策は擬似コードですが、OPが探しているものを実現するための実際の方法を提供していません。 '$ db-> execute'自体はPHPではありません...それは、その行と' foreach ... '行の間のフレームワークの一部でない限り、あなたが '他のコード'とコメントした行です...必要なコードです。 .. lol –

0

あなたはそれを試してみて、表示されないのはなぜはい

$playerposition = array(); 

while ($row_playersa = mysqli_fetch_assoc()) { 
    $playerposition [] = $row_playersa['name']; 
} 

foreach($playerposition as $position){ 
    $selected = ($player_row[$plyPosition]===$position) ? "selected" : null; 
    echo '<option value="'. $position .'" ' . $selected . '>'. $position .'</option>'; 
} 
+0

あなたの提案をありがとう。しかし、これは私がしようとしていることを達成していません。これが与えるのは、テーブル内のすべてのプレイヤーの位置のリストです。 –

+0

あなたが何を求めているのか分かりません... –

+0

通常のフォームテキストボックスでは、値を 'value =" <?php echo $ row_playersa ['plyPosition'];?> ">これは、レコードがデータベースから取得したフォームに表示されます。これで、配列がデータベースのテーブルから取得され、ハードコードされた値からではなく、選択した値としてドロップダウンに表示される値ではなく、ドロップダウンでどのように行うことができるのでしょうか。 –

関連する問題