如何在PHP中通过selectbox的值-Typo3获取其标签

如何在PHP中通过selectbox的值-Typo3获取其标签,php,label,option,typo3,Php,Label,Option,Typo3,在我的一个插件的Typo3后端有一个选择框。选项值为0,1,2,3。。。选项名称或标签本身包含以下文本:foo、bar、whatever、 现在数据库中保存的是值。但我需要显示标签或名称。 扩展插件是用Kickstarter设置的,如果需要,我也可以自己修改文件中的内容 我知道可以将值从0-x更改为其标签。但是我不喜欢它,如果没有办法得到它的标签,名字,我就这么做 有人知道如何根据期权的价值或甚至是可能的价值来获得它们 这是我的php-$v['category']是0,1,2,3。。。从选择框中

在我的一个插件的Typo3后端有一个选择框。选项值为0,1,2,3。。。选项名称或标签本身包含以下文本:foo、bar、whatever、

现在数据库中保存的是值。但我需要显示标签或名称。 扩展插件是用Kickstarter设置的,如果需要,我也可以自己修改文件中的内容

我知道可以将值从0-x更改为其标签。但是我不喜欢它,如果没有办法得到它的标签,名字,我就这么做

有人知道如何根据期权的价值或甚至是可能的价值来获得它们

这是我的php-$v['category']是0,1,2,3。。。从选择框中:

    $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
        '*', 
        'sometable',
        '',
        '',
        'title ASC',
        ''
    );
    while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
        $projects[] = $row;
    }

    $content = '<div class="projectlist">';
    foreach ($projects as $k => $v) {
        $content.= '<div class="project-single">';
        $content.= $v['title'].' | '.$v['category'];
        $content.= '</div>';
    }
    $content.= '</div>';
$res=$GLOBALS['TYPO3\u DB']->exec\u SELECTquery(
'*', 
“某个桌子”,
'',
'',
“名称ASC”,
''
);
while($row=$GLOBALS['TYPO3\u DB']->sql\u fetch\u assoc($res)){
$projects[]=$row;
}
$content='';
foreach($k=>v的项目){
$content.='';
$content.=$v['title'.|'。$v['category'];
$content.='';
}
$content.='';

很抱歉,在使用php处理提交的表单时,无法知道选择框中选项对应的文本。只发送值。在创建表单之前将其存储在服务器端,或者使用javascript将其与表单一起发送。我需要一个示例页面或代码来帮助处理该部分…

由于
$v['category']
包含id,您可以在
locallang.xml
中查找该值:

foreach ($projects as $k => $v) {
        $content.= '<div class="project-single">';
        $content.= $v['title'].' | '.$this->pi_getLL('category_'.$v['category']);
        $content.= '</div>';
    }

嗯,我想可能有一个typo3函数。。。不用担心,我会等待更多的观众,下周如果没有成功,我只会使用标签作为价值。不管怎样,我支持你的好方法,但是。。。1) 不确定标签是否确实在语言文件中。是的,它们应该是,但是程序员可能采取了一种肮脏的方式,将标签直接放在TCA配置中,放弃了多语言后端。2) 前端插件IMHO加载的XML文件与后端标签使用的XML文件不同,因此必须将标签复制到正确的XML文件中,或者需要加载不同的XML。@cascaval:valid points。但是,
kickstarter
很容易自动创建它们:)@康尼·弗雷迪·泰克斯赞成这个想法。。只剩下一个小问题了。我想getLL只查看pi文件夹中的locallang.xml。当我使用kickstarter创建表时,selectbox标签位于../locallang_db.xml中。有没有方法读取该文件?现在我把一些行复制到我的locallang.xml中,这没问题,但有点脏。如果不可能,我将在几天内接受你的答复。thanks@ggzone:它们具有相同的结构,但遗憾的是,您无法在前端显式加载
locallang_db.xml
。解决此问题的一种方法是创建一个符号链接(如果您使用的是*nix)计算机:
rm typo3conf/ext/yourtextension/pi1/locallang.xml;ln-s typo3conf/ext/yourtextension/locallang_db.xml typo3conf/ext/yourtextension/pi1/locallang.xml嗯,是的,我将其与复制/粘贴一起保存。。。由于php代码很清楚,并且没有计划对其进行更改。我现在接受答案。非常感谢你的帮助
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<T3locallang>
    <data type="array">
        <languageKey index="default" type="array">
            <label index="category_1">Category label 1</label>
            <label index="category_2">Category label 2</label>
        </languageKey>
    </data>
</T3locallang>