2013-08-23 35 views
0

我想在PHP頁面中定位選項標籤而不是它的值。目標HTML選項標籤而不是PHP中的值?

我知道PHP是服務器端,它可能很難瞄準選項標籤,但有沒有解決這個問題?

我使用的代碼是這樣的:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
     <head> 
     <link rel="stylesheet" type="text/css" href= 
     "css/mainstyle_css.css" /> 
     <meta http-equiv="Content-Type" content= 
     "text/html; charset=utf-8" /> 
     <title> 
      title 
     </title> 
     </head> 
     <body> 
    <form method="post" action=""> 
     <select name="myList" id="myList" class="myList"> 
     <optgroup label="list 1"> 
    <option value="music/one" label="techno">techno</option> 
    <option value="music/two" label="rock">rock</option> 

    </optgroup> 
     </select> 
    <input type="submit" name="submit" id="submit" class="submit" value="Search"/> 

    </form> 

    <?php echo $myList; ?> 



    </body> 

</html> 

與上面的代碼,我得到了音樂/一個和音樂/兩PHP頁面回聲-ED。我需要做的是迴應他們的標籤是「技術」和「搖滾」。

有人可以幫我解決這個問題嗎?

+1

您可以更改選項像這樣'<期權價值= 「技術」 標籤= 「技術」> TECHNO' – 2013-08-23 20:40:58

+0

爲什麼要在服務器上使用PHP解析HTML?這沒有意義。 –

+0

對不起,這是脫離主題,但爲什麼你仍然在使用該文檔類型?我以爲我們都切換到<!DOCTYPE html> ..你知道一致性。 –

回答

1

你可以做這樣的事情:

<?php 
$options = array(); 
$options["music/one"] = "techno"; 
$options["music/two"] = "rock"; 
?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <link rel="stylesheet" type="text/css" href="css/mainstyle_css.css" /> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <title>title</title> 
    </head> 
    <body> 
     <form method="post" action=""> 
      <select name="myList" id="myList" class="myList"> 
       <optgroup label="list 1"> 
        <?php 
        foreach($options as $key => $value) 
        { 
         echo '<option value="'. $key .'" label="'. $value .'">'.$value.'</option>'; 
        } 
        ?> 
       </optgroup> 
      </select> 
      <input type="submit" name="submit" id="submit" class="submit" value="Search"/> 
     </form> 
     <?php echo $options[$_POST['myList']]; ?> 
    </body> 
</html> 
+0

好吧,這在某種程度上有效。但是如果頁面上有100個選項,怎麼樣?我必須添加$ options [「music/three」] =「somename」; $ options [「music/four」] =「somename」;爲每一個?還是有另一種方法來做到這一點? –

0

試試這個:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <link rel="stylesheet" type="text/css" href= 
    "css/mainstyle_css.css" /> 
    <meta http-equiv="Content-Type" content= 
    "text/html; charset=utf-8" /> 
    <title> 
     title 
    </title> 
    </head> 
    <body> 
<form method="post" action="a.php"> 
    <select name="myList" id="myList" class="myList"> 
    <optgroup label="list 1"> 
<?php 
    foreach($options as $key => $value) 
       { 
        echo "<option value='{$key}' label='{$value}'>{$value}</option>"; // this will fill all your values in option field via loop 
       } 
       ?> 
<option value="music/one" label="techno">techno</option> // you can also do it this way manually as u did. 
<option value="music/two" label="rock">rock</option> 

</optgroup> 
    </select> 
<input type="submit" name="submit" id="submit" class="submit" value="Search"/> 

</form> 
</body> 

</html> 

// below codeshould be in a.php 

<?php if(isset($_POST['submit'])) 
{ 
    echo $_POST['myList']; 
} 
?> 
相關問題