如何使用JavaScript更改select标签的值?

时间:2012-11-19 06:52:30

标签: javascript php html html-select

我有两页。 “page1.php”“page2.php”

在page1.php中,

<a href="page2.php?c=Category1">Category1</a>
<a href="page2.php?c=Category2">Category2</a>
<a href="page2.php?c=Category3">Category3</a>

在page2.php中,

<?php
    $c=$_GET['c'];
    echo '<script>'
    , 'chgvalues("'.$c.'");'
    , '</script>';
?>
<select id="mySelect">
    <option>Category1</option>
    <option>Category3</option>
    <option>Category2</option>
</select>

在chgvalues(c)中,

function chgvalues(c)
{
    document.getElementById("mySelect").selected =true;
}

但这不适合我。我想要做的是,当用户点击第1页上的链接时,页面2会自动设置选择值。

我认为我在 chgvalues 函数中错了。

5 个答案:

答案 0 :(得分:5)

尝试

function chgvalues(c)
{
    document.getElementById("mySelect").value = c;
}

并在chgvalues成为dom的一部分后致电mySelect

要完成此操作,您只需在标记chgvalues之后调用mySelect即可,例如

<select id="mySelect">
<option>Category1</option>
<option>Category3</option>
<option>Category2</option>
</select>
<?php
$c=$_GET['c'];// sanitize etc
echo '<script>'
, 'chgvalues("'.$c.'");'
, '</script>';
?>

或在window.onload中调用它,例如

<script>
    window.onload = function(){
        chgvalues("<?php echo $c; ?>");
    };
</script>

答案 1 :(得分:0)

将page2.php更改为:

<select id="mySelect">
<option id="Category1">Category1</option>
<option id="Category3">Category3</option>
<option id="Category2">Category2</option>
</select>
<?php
$c=$_GET['c'];
echo '<script>'
, 'chgvalues("'.$c.'");'
, '</script>';
?>

您的脚本在选项位于DOM之前运行,并且选项上没有ID,因此它们与getElementById不匹配。

答案 2 :(得分:0)

您可以将查询字符串值传递给val方法。

$("#mySelect").val("thevalue")

只需确保options标记中的值与val方法中的值匹配。

答案 3 :(得分:0)

尝试

在page2.php

<?php
$c=$_GET['c'];
echo '<script>'
. 'chgvalues("'.$c.'");'
. '</script>';
?>
<select id="mySelect">
<option value='Category1'>Category1</option>
<option value='Category3'>Category3</option>
<option value='Category2'>Category2</option>
</select>

并在chgvalues(c)

function chgvalues(c)
 {
    document.getElementById("mySelect").value = true;
 }

答案 4 :(得分:0)

问题是“已选择”属性适用于<option>标记,而不适用于<select>标记。实际上,只需将page2.php更改为:

<?php $c = $_GET[c];?>
<select>
<option <?php if(c == "1"){echo "selected";}?>>Category1</option>
<option <?php if(c == "3"){echo "selected";}?>>Category3</option>
<option <?php if(c == "2"){echo "selected";}?>>Category2</option>
</select>
相关问题