是否可以使用PHP更改HTML元素值
我在一个PHP页面中直接嵌入了以下HTML代码是否可以使用PHP更改HTML元素值,php,javascript,jquery,html,Php,Javascript,Jquery,Html,我在一个PHP页面中直接嵌入了以下HTML代码 <select name="language_levels[]" class="span2"> <option value="beginner">beginner</option> <option value="intermediate">intermediate</option> <option value="fluent">fluent</op
<select name="language_levels[]" class="span2">
<option value="beginner">beginner</option>
<option value="intermediate">intermediate</option>
<option value="fluent">fluent</option>
<option value="native">native</option>
</select>
初学者
中间的
流利的
本地的
现在我想根据数据库中的记录检查其中一个选项,因此在PHP页面中,我可以简单地回显上面的代码,并检查一个选项(例如,初学者)。然而,我认为这不是正确的方法(因为它涉及大量的条件语句来决定要输出的正确代码,即echo),所以我想知道php是否有一种方法(比如JavaScript/Jquery)来设置选项值;
$value = 'beginner';
$options = array('beginner', 'intermediate', 'fluent', 'native');
<select name="language_levels[]" class="span2">
<?php foreach($options as $o) {
$selected = $o === $value ? "selected='selected'" : "";
echo "<option value='$o' $selected>$o</option>";
} ?>
</select>
$options=array('初学者'、'中级'、'流利'、'本机');
$value='初学者';
$options=array('初学者'、'中级'、'流利'、'本机');
以下是如何制作网页(使用PHP):
用户从您的服务器请求example.com/foo.php
服务器在foo.PHP
上运行所有PHP代码以生成HTML文件
该HTML文件被发送回用户的计算机
该用户的机器解析HTML并运行其中的任何Javascript
正如您所看到的,使用javascript/jquery不仅是错误的,而且是不可能的,因为javascript不知道选择哪个选项(除非您为它设置了一个JS变量,但是如果您要这样做,为什么不首先将echo
设置为selected
属性,对吗?)
因此,使用PHP设置适当选项的selected
属性确实没有什么错。然而,正如undefined评论的那样,有一些方法可以避免编写数百万个条件语句。一个例子是按照未定义的建议进行操作,另一个例子是将您自己的自定义选择标记逻辑构建为类或函数
还有一种方法是使用许多伟大的PHP框架之一,为您提供此类类/函数。以下是网页的制作方法(使用PHP):
<select id = "level" name="language_levels[]" class="span2">
<option value="beginner">beginner</option>
<option value="intermediate">intermediate</option>
<option value="fluent">fluent</option>
<option value="native">native</option>
</select>
用户从您的服务器请求example.com/foo.php
服务器在foo.PHP
上运行所有PHP代码以生成HTML文件
该HTML文件被发送回用户的计算机
该用户的机器解析HTML并运行其中的任何Javascript
正如您所看到的,使用javascript/jquery不仅是错误的,而且是不可能的,因为javascript不知道选择哪个选项(除非您为它设置了一个JS变量,但是如果您要这样做,为什么不首先将echo
设置为selected
属性,对吗?)
因此,使用PHP设置适当选项的selected
属性确实没有什么错。然而,正如undefined评论的那样,有一些方法可以避免编写数百万个条件语句。一个例子是按照未定义的建议进行操作,另一个例子是将您自己的自定义选择标记逻辑构建为类或函数
还有一种方法是使用为您提供此类类/函数的众多优秀PHP框架之一。没有必要使用大量的条件语句,如果一个语句就足够了。难道您不能使用PHP和in-the-loop生成“选项”列表吗,您可以决定选择哪一个。您只需设置select元素的值,@adeneo you方法不起作用。不需要使用大量的条件语句,如果一个语句就足够了。您不能使用php和循环生成“option”列表吗,您可以决定选择哪一个。您只需设置select元素的值,@adeneo you method对您的三元技能不起作用,但如果您避免使用它们,初学者会更好地理解您的示例。@Sosukodo谢谢,嗯,三元运算符不是很复杂,很多语言都支持它,条件?true:false
,它使代码更短,程序员应该知道它是如何工作的。我错了吗?@undefined我同意三元语法是一项重要的技能,但它对新手来说可读性较差,因为它通常不出现在基础课程和教程中。添加注释(//三元条件
)以帮助指导适当的文档编制,或者添加一对括号以直观地将三元操作与变量赋值分开。您是对的,它不是必需的,但肯定很有用。您的选项数组不正确!:p谢谢anyway@undefined当前位置我认为我们两人都没有错。就我个人而言,我不使用它们。为了清楚起见,我尽量用冗长的代码。也许这就是我提出来的原因!抱歉。祝贺你掌握了三元运算符的技能,但如果你避免使用它们,初学者会更好地理解你的示例。@Sosukodo谢谢,好吧,三元运算符不是很复杂,很多语言都支持它,条件?true:false
,它使代码更短,程序员应该知道它是如何工作的。我错了吗?@undefined我同意三元语法是一项重要的技能,但它对新手来说可读性较差,因为它通常不出现在基础课程和教程中。添加注释(//三元条件
)以帮助指导适当的文档编制,或者添加一对括号以直观地将三元操作与变量赋值分开。您是对的,它不是必需的,但肯定很有用。您的选项数组不正确!:p谢谢anyway@undefined当前位置我认为我们两人都没有错。就我个人而言,我不使用它们。为了清楚起见,我尽量用冗长的代码。也许这就是我提出来的原因!很抱歉
<select id = "level" name="language_levels[]" class="span2">
<option value="beginner">beginner</option>
<option value="intermediate">intermediate</option>
<option value="fluent">fluent</option>
<option value="native">native</option>
</select>