2012-11-19 77 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> 
相關問題