2012-11-19 32 views
0

我有两页。 “page1.php中”, “使page2.php”如何使用JavaScript更改选择标记的值?

在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函数。

回答

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

5

尝试

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

,并呼吁chgvaluesmySelect是DOM的一部分。

要做到这一点,您可以在标记中简单地呼叫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> 
0

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

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

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

+0

什么'.val()'方法?请让OP知道你正在建议哪个外部库... – nnnnnn

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; 
} 
+1

我想真的应该是c,不是吗? – user1820264

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> 
相关问题