0

我想访问同一页面上的变量,但我不能..我的代码在下面给出,但出现错误 Undefined index: cars

<form name="form1" action="#" method="post">
<select onChange="openOffersDialog(this.value);" name="cars" id="cars">  
  <option value="Volvo" id="Volvo">Volvo</option>        
  <option id="Saab" value="Saab" selected>Audi</option>                  
</select>
</form>
<?php $car = $_GET['cars'];
    switch ($car) { 
    case "Volvo": 
    echo  "<table width='50%' border='0'>
          <tr>
            <td>Volvo1</td>
            <td>Volvo2</td>
          </tr>      
        </table>"; 
    break; 
    case "Saab": 
    echo  "<table width='50%' border='0'>
          <tr>
            <td>Saab1</td>
            <td>Saab2</td>
          </tr>      
        </table>" ;
    break;
    default: 
    echo "Sorry,<br>";  
    } ?>
4

3 回答 3

2

你有三个问题:

  1. 您的表单是method="post",但您试图从中读取数据$_GET,将其更改为$_POST(或更改要使用的表单method="get",请参阅此答案以帮助确定您应该使用哪个)。
  2. 无论表单是否已实际提交,您都试图从表单提交中读取数据。isset在执行依赖于它的其余逻辑之前测试该值是否存在。
  3. 您没有提交按钮,因此无法提交表单。您可能希望 PHP 在选择更改时运行,但除非您有一些 JavaScript 来触发表单提交,否则情况并非如此。
于 2013-05-27T09:44:36.890 回答
0

您的表单中有一个POST方法。替换$_GET["cars"]$_POST["cars"]

$car = $_POST['cars'];

或者,您需要更改<form>标签:

<form name="form1" action="#" method="get">

此外,您应该首先检查表格是否已发布。所以你需要预先给出这个。

<?php if (count($_POST) && isset($_POST["cars"])) { ?>

然后你需要继续。

于 2013-05-27T09:44:47.470 回答
0

你出错的地方是$_GET. 试试$_POST['cars'];方法。请阅读以下链接以获取更多信息

http://www.tutorialspoint.com/php/php_get_post.htm

于 2013-05-27T09:45:15.373 回答