HTML Seçin Tag içine girdi PHP Değişken

5 Cevap php

Ben bir php değişken var ($list) olduğunu virgülle ayrılmış değerler listesi. Ben bir HTML seçin etiket içine bu değişkeni dönüştürmek veya giriş nasıl anlamaya çalışıyorum. İşte ben bugüne kadar ne var:

$dbquery = @$db->query('SELECT * FROM Company');
while ($queryText = $dbquery->fetchArray()){
  $array[]=$queryText['Company_Name'];
}
//the next batch of code, which is not included, converts the $array[] into a variable named $list//  
//the values for $list are: Company1, Company2, Company3, Company4...//

//HTML select tag//
echo '<select name="testSelect" id="testId">';
echo '<option value="'.$list.'">'.$list;
echo '</option></select>';

Ben bir "süre" ya da bir $ liste içinde değerlerini listelemek için "için" gibi bir döngü gerekir anlıyorum, ama ben kesin sözdizimi emin değilim. Herkes bana bu konuda yardımcı olabilir mi?

Teşekkürler,

DFM

5 Cevap

Sen) doğrudan nedense explode() the list into an array (if you can't use $array gerekiyor sonra yapın:

$listArray = explode(', ', $list);
echo '<select name="testSelect" id="testId">';
foreach ($listArray as $item)
    echo '<option value="'.htmlspecialchars($item).'">'. htmlspecialchars($item) . "</option>\n";
echo '</select>';

Her liste öğesi (şirket adı) için option eleman gerekir.

<select name="testSelect" id="testId">
    <?php foreach ($array as $companyName): ?>
        <option value="<?php echo $companyName; ?>"><?php echo $companyName; ?></option>
    <?php endforeach; ?>
</select>

Neden ilk etapta bir virgülle ayrılmış liste halinde dizi dönüştürürken? Eğer bir dizi var bir kez yapabilirsiniz

foreach ($company in $list) {
    echo '<option value="' . htmlspecialchars($company) . '">' . htmlspecialchars($company) . '</option>';
}

çıkış için seçenekler. Nedense gerçekten virgülle ayrılmış liste adım olması gerekiyorsa, her zaman geri bir diziye dönüştürmek için (',', $ liste) patlayabilir kullanabilirsiniz.

O döngü sonra, bir diziye malzeme listesini koymak için explode() gibi bir şey kullanabilirsiniz .. gibi bir şey:

$myArray = explode(",", $list);

echo "<select name=\"testSelect\" id=\"testId\">\n";
for($i = 0; $i < count($myArray); $i++) {
    // add each option to select list..
    echo "<option>" . $myArray[$i] . "</option>\n";
}
echo "</option>\n";

PHP explode() function Daha:

http://www.php.net/manual/en/function.explode.php

Bkz implode()

Sen bir döngü ve dize birleştirme ile implode () fonksiyonunu taklit edebilirsiniz.

Örneğin:

$out = '';
$append = ', ';

for($arr as $v)
{
  $out .= $v.$append;
}

$out = substr($out, 0, (-1) * strlen($append));