Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.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
如何使用JavaScript更改select标记的值?_Javascript_Php_Html_Html Select - Fatal编程技术网

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

如何使用JavaScript更改select标记的值?,javascript,php,html,html-select,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> <?php $c=$_GET['c']; ec

我有两页。“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>
<?php
    $c=$_GET['c'];
    echo '<script>'
    , 'chgvalues("'.$c.'");'
    , '</script>';
?>
<select id="mySelect">
    <option>Category1</option>
    <option>Category3</option>
    <option>Category2</option>
</select>
function chgvalues(c)
{
    document.getElementById("mySelect").selected =true;
}
但这对我没用。我想做的是,当用户单击第1页上的链接时,第2页会自动设置select值

我认为我的chgvalues函数是错误的。

将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>';
?>
<?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>

类别1
类别3
类别2
您的脚本在选项进入DOM之前运行,并且选项上没有ID,因此它们不匹配
getElementById

将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>';
?>
<?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>

类别1
类别3
类别2
您的脚本在选项进入DOM之前运行,并且选项上没有ID,因此它们不匹配

function chgvalues(c)
{
    document.getElementById("mySelect").value = c;
}
mySelect
之后调用
chgvalues
,这是dom的一部分

要实现这一点,您只需在标记中的
mySelect
之后调用
chgvalues
,例如

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

类别1
类别3
类别2
或者在window.onload中调用它

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

window.onload=函数(){
CHG值(“”);
};
试试看

mySelect
之后调用
chgvalues
,这是dom的一部分

要实现这一点,您只需在标记中的
mySelect
之后调用
chgvalues
,例如

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

类别1
类别3
类别2
或者在window.onload中调用它

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

window.onload=函数(){
CHG值(“”);
};

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

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

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

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

$("#mySelect").val("thevalue")
只要确保选项标记中的值与val方法中的值匹配即可。

试试看

在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>
试一试

在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>
问题是“selected”属性应用于
标记,而不是
标记。实际上,只需将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>';
?>
<?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>

>类别3
问题是“selected”属性应用于
标记,而不是
标记。实际上,只需将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>';
?>
<?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>

>类别3

什么
.val()
方法?请让OP知道您建议使用哪个外部库…什么
.val()
方法?请让OP知道您建议的外部库…我猜true应该是c,不是吗?我猜true应该是c,不是吗?