如何在php中访问同一页面上的变量

时间:2013-05-27 09:42:25

标签: php

我想在同一页面访问变量,但我不能..我的代码在下面给出,但错误发生未定义索引:汽车

<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>";  
    } ?>

3 个答案:

答案 0 :(得分:2)

你有三个问题:

  1. 您的表单为method="post"但您尝试从$_GET中读取数据,将其更改为$_POST(或更改要使用的method="get"表单,请参阅{{ 3}}帮助确定你应该使用哪个)。
  2. 您正在尝试从表单提交中读取数据,无论表单是否已实际提交。在执行依赖于它的逻辑的其余部分之前,测试该值是否与this answer一起存在。
  3. 您没有提交按钮,因此无法提交表单。您可能希望在更改选择时运行PHP,但除非您有一些JavaScript来触发表单提交,否则情况并非如此。

答案 1 :(得分:0)

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

$car = $_POST['cars'];

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

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

此外,您应首先检查表单是否已发布。所以你需要提前做好准备。

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

然后你需要继续。

答案 2 :(得分:0)

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

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