Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用PHP更改HTML元素值_Php_Javascript_Jquery_Html - Fatal编程技术网

是否可以使用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

我在一个PHP页面中直接嵌入了以下HTML代码

<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>