2016-03-30 18 views
0

Ohne zu viel Informationen über die API geben zu müssen, versuche ich den Wert Option Wert zu entsprechen, was innerhalb des Options-Tags verpackt ist.PHP Foreach-Array in Option Wert

Etwas wie folgt aus:

<option value="Foo">Bar</option> 

Hier ist der PHP:

<?php 
    $counter = 0; 
    $numbers = $client->account->available_phone_numbers->getList('US', 'Local', array(
    "AreaCode" => $_POST["areacode"])); 
    echo "<select>"; 
    foreach($numbers->available_phone_numbers as $number) { 
     echo "<option value=''>"; 
     echo $number->phone_number; 
     $counter++; 
     echo "</option>"; 
     echo "<br>"; 
    } 
    echo "</select>"; 
    echo "<br>"; 
    echo $counter; 
?> 

Mit diesem Formular:

<form action="index.php" method="post"> 
    Area Code:<br> 
    <input type="text" name="areacode" value=""><br> 
    <input type="submit" value="Submit"> 
</form> 
+2

Sie setzen nicht ''
innerhalb eines ausgewählten, und Sie müssen hinzufügen 'value' jede Option:' echo "

Antwort

2

Ihre Syntax ist falsch.

echo '<select>'; 
foreach($numbers->available_phone_numbers as $number) { 

    echo '<option value="' .$number->phone_number .'">'; 
    echo $number->phone_number; 
    echo '</option>'; 
} 
echo '</select>'; 

Auch sollten Sie keine br Tag in Ihrem select Element haben.

+1

Sie sollten Werte, die in ein Attribut mit [htmlentities] (http://php.net/manual/en/function.htmlentities.php) gehen, immer umbrechen. - Wenn der Wert Zeichen wie "" oder ">" enthält oder andere, die die HTML-Struktur brechen könnten - Aber die Antwort ist in der gesamten –

+0

Ein sehr gültiger Punkt richtig, und etwas OP sollte hereinnehmen. – Stuart

1

ändern echo "<option value=''>"; zu echo "<option value='{$number->phone_number}'>";

+0

Perfekt, danke !! – codnor

0

Ich denke, Sie müssen die Auswahl innerhalb des Formular-Tags verschieben, um die ausgewählten Daten auch zu übermitteln.

<form action="index.php" method="post"> 
echo "<select>"; 
foreach($numbers->available_phone_numbers as $number) { 

echo "<option value='".$number->phone_number."'>"; 
echo $number->phone_number; 
$counter++; 
echo "</option>"; 
echo "<br>"; 
} 
echo "</select>"; 
echo "<br>"; 
echo $counter; 
?>Area Code:<br> 
<input type="text" name="areacode" value=""><br> 
<input type="submit" value="Submit"> 
</form> 

Hope this Hilfe

0
<?php 
$counter = 0; 
$numbers = $client->account->available_phone_numbers->getList('US', 'Local',   
array(
"AreaCode" => $_POST["areacode"] 
)); 
?> 
<form action="index.php" method="post"> 
<?php 
echo "<select>"; 
foreach($numbers->available_phone_numbers as $number) { 
echo "<option>" . $number->phone_number . "</option>"; 
$counter++; 
} 
echo "</select>"; 

?> 
<input type="submit" value="Submit"> 
</form>