2017-08-02 25 views
-3

私はPHPを使用しています。配列とオプションのメニューにインデックスの値を入れますか?

私は以下のような配列を持っています。

$wupincat = array('','sword','knife','bow'); 

私は、オプションメニューの中に、この配列を入れたいが、私は、メニューoption valueを指定することはできません。

マイPHP側は次のとおりです。

$wupincat = array('','sword','knife','bow'); 

マイHTML側:

<select name="wcat" id="typeid" class="ps"> 
    {loop $wupincat $wp} 
    <option value="">$wp</option> 
    {/loop} 
</select> 

私の最終的な出力:

<select name="wcat" id="typeid" class="ps"> 
    <option value="">sword</option> 
    <option value="">knife</option> 
    <option value="">bow</option> 
</select> 

option valueを指定する方法?

これは私が必要なものである:

<select name="wcat" id="typeid" class="ps"> 
    <option value="1">sword</option> 
    <option value="2">knife</option> 
    <option value="3">bow</option> 
</select> 

どのようにコーディングを改善したり、私が何かを欠場しますか? 最終的なコーディングは次のとおりです: 私のPHP側:

$wupincat = array('','sword','knife','bow'); 
$arrayfilter = array_filter($wupincat); 
foreach($arrayfilter as $key => $value) { 
    $crazylist[$key]['title'] = $value; 
    $crazylist[$key]['key'] = $key; 
} 

マイHTML側:

<select name="wcat" id="typeid" class="ps"> 
    <option value="0">Choose...</option> 
    {loop $crazylist $value} 
    <option value="{$value[key]}">{$value[title]}</option> 
    {/loop} 
</select> 

====== は、私は私の問題を解決してきた、すべての答えを統合します

最終出力(成功!)

<select name="wcat" id="typeid" class="ps"> 
    <option value="0">Choose...</option> 
    <option value="1">sword</option> 
    <option value="2">knife</option> 
    <option value="3">bow</option> 
</select> 
+1

小枝などを使用していますか?そのHTMLはバニラHTMLまたはPHPではないので – RiggsFolly

+0

あなたのHTMLコードのループはどのように機能しますか? PHPではありません。それはフロントエンドフレームワークの一部ですか? – Kita

+0

あなたが使用しているテンプレートエンジンを教えてください – RiggsFolly

答えて

2

あなたのテンプレートエンジンを使用しているようです。ですから、テンプレートエンジンが何であるかを知る必要があります。他の人が回答を提供したvanila PHPコードを使用するか、テンプレートエンジンの適切なコードフォーマットを使用することができます。

それはこのようなものが考えられます。

再び
<select name="wcat" id="typeid" class="ps"> 
{loop $wupincat $key => $wp} 
    <option value="$key">$wp</option> 
{/loop} 
</select> 

、正確なコードを提供するために、我々はあなたが以下のように使用することができますバニラのPHPを使用したテンプレートエンジン

+1

OPは値を –

+0

としてインデックスを求めていますが、少なくともこの人はOPがテンプレートエンジンを使用しており、バニラPHPソリューションを提案していません。 – RiggsFolly

+0

@JimWright。私はインデックスを価値として置くという要求は見ません。私はdownvotingが公正だとは思わない。 – Mojtaba

2

このようにして、

<select name="wcat" id="typeid" class="ps"> 
<?php 
    $wupincat = array('','sword','knife','bow'); 
    foreach($wupincat as $cc => $name) { 
    if($name !=='') 
    echo '<option value="' . $cc . '">' . $name . '</option>'; 
    } 
?> 
</select> 
+0

あなたはOPがテンプレートエンジンを使用していて、バニラではないことに気付きましたか? – RiggsFolly

+0

@RiggsFolly ohhはい、私はそれを逃しました:)私は私の答えを変更する必要がありますか? –

2

はあなたの選択の間で、このループを追加します。

<select name="wcat" id="typeid" class="ps"> 
<?php 
    foreach ($wupincat as $index => $item) { 
    if (empty($item)) { continue; } 
    echo '<option value="' . $index . '">' . $item . '</option>'; 
    } 
?> 
</select> 
+0

'$ wp'ではなく' $ item'であるべきです –

+0

おっと、長い日ですが、今修正されました。 – DrRoach

+0

OPはテンプレートエンジンを使用していますが、バニラではありませんPHP – RiggsFolly

1

を知っておく必要があります。

<select name="wcat" id="typeid" class="ps"> 
<?php ($wupincat as $index => $wp) { 
    echo '<option value="' . $index . '">' . $wp . '</option>'; 
?> 
</select> 

私はどのテンプレートフレームワークを使用しているのかよく分かりませんが、これはおそらくあなたのために機能しますか?

<select name="wcat" id="typeid" class="ps"> 
{loop $wupincat $index => $wp} 
    <option value="$index">$wp</option> 
{/loop} 
</select> 
+0

'index + 1'?なぜ – RiggsFolly

+0

@ RiggsFolly最初の要素が空で、OPが1から始まったのを見逃しました。更新しました。 –

関連する問題