2011-10-21 215 views
0

我想执行以下代码:简单的PHP不工作

<label for="gender">Gender*: </label> 
<select name="user[test]" id="gender"> 
<? echo "THISISATEST"?> 
<option value="-1"> - Select - </option> 
</select> 

而且它不会做任何事情。

然而,这工作得很好:

<select name="user[test]" id="gender"> 
<option value="-1"> - Select - </option> 
</select> 
<? echo "THISISATEST"?> 

这是怎么回事?

谢谢!

编辑:我是一个白痴,我试图简化发布在这里的问题,原来的回声出现在soruce和我试图动态创建公正的行不起作用。 DERP。我忘了围绕我的速记,如果?else:括号,导致整条线不回声。

谢谢

+0

这样做的目的是什么?你想通过php生成选项吗? – punit

回答

1

您是否完全确定服务器上启用了短标签?我只是仔细检查<?php echo "THISISATEST"; ?>,看看是否会改善你的运气。此外,您是否查看源代码 - 因为该值可能在选择时隐藏在渲染页面上,

+0

修正它,见上文。我是个白痴大声笑,谢谢 – Jordan

2
<select name="user[test]" id="gender"> 
    <? echo "THISISATEST"?> /// You can't echo string inside <select></select> 
    <option value="-1"> - Select - </option> 
</select> 

而是做

<select name="user[test]" id="gender"> 
    <option value="0"><? echo "THISISATEST"?></option> // This will work 
    <option value="1"> - Select - </option> 
</select> 
1

简单。您的浏览器忽略select节点下的文本节点。这种安排不在HTML规范中,所以浏览器可以自由切割它,不过他们喜欢。

2
<select name="user[test]" id="gender"> 
<option value="<?php 
echo "THISISATEST"; 
?>"><?php 
echo "THISISATEST"; 
?></option> // This will work 
<option value="1"> - Select - </option> 

这应该很好地工作。你也可以输入你想要的值