是否可以使用PHP更改HTML元素值

时间:2013-04-27 19:36:47

标签: php javascript jquery html

我将以下HTML代码直接嵌入到一个PHP页面中,

<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 上面的代码,并选中一个选项(例如,初学者)。但是,我认为这不是正确的方法(因为它涉及很多条件语句来决定输出正确的代码,即 echo ),所以我想知道是否有方法(如JavaScript / Jquery) )为php设置选项值。

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

以下是如何制作网页(使用PHP):

  1. 用户要求您提供服务器example.com/foo.php
  2. 您的服务器在foo.php运行所有PHP代码以生成HTML文件
  3. 该HTML文件被发送回用户的计算机
  4. 该用户的机器解析HTML并在
  5. 中运行任何Javascript

    正如你所看到的,使用javascript / jquery不仅是错误的,这是不可能的,因为Javascript不知道选择哪个选项(除非你echo - 为它编了一个JS变量,但是如果您要这样做,为什么不只是echo首先出现selected属性?)。

    所以使用PHP设置相应选项的selected属性绝对没有错。然而,正如undefined所述,有一些方法可以避免编写数百万个条件。一个例子是做undefined建议的,另一个例子是将你自己的自定义选择标记逻辑构建为一个类或函数。

    另一种方法是使用为您提供此类/函数的众多优秀PHP框架之一。

答案 2 :(得分:0)

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

通过使用jquery你可以做到这一点

var prevSelected='';
$(function()
{
    // get checked value via ajax call
    ajax(url,function(data)
    {
       if(prevSelected!='')
          $("#level option[value='" + prevSelected + "']").removeAttr("selected","selected");

       $("#level option[value='" + data + "']").attr("selected","selected");
       prevSelected=data;
    });

});
相关问题