2017-08-02 56 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> 

再次,提供确切的代码,我们需要知道模板引擎

+1

OP希望指数值 –

+0

但至少这家伙已经注意到,OP使用模板引擎,而不是暗示香草PHP解决方案 – RiggsFolly

+0

@JimWright。我没有看到将索引作为价值的任何请求。我认为低调是不公平的。 – 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是使用模板引擎,而不是香草PHP – RiggsFolly

+0

@RiggsFolly喔,是的,我错过了:)我需要改变我的答案吗? –

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

使用香草PHP,你可以使用以下命令:

<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开始更新。 –

相关问题