0

I am trying to target the option label instead of its value in a PHP page.

I know that PHP is server side and it could be difficult to target the option label but is there a work around for this?

the code i am using is this:

    <!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>

with the code above I get the music/one and music/two echo-ed on the php page. what i need to do is to echo their labels which are "techno" and "rock".

could someone please help me out with this?

4

2 回答 2

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>
于 2013-08-23T20:51:17.147 回答
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']; 
}
?>
于 2013-08-23T21:13:30.800 回答