2012-10-29 70 views
0

我完全停留在这里,发现发布数十个样本以获取和设置值。我所试图做的是 -从php的文本值获取数据

  1. 让用户在我的表单中输入的车辆一年模型转换为文本框(集后)

  2. 那么我就需要这个值获得一个变量状态

    $vehicle_year = $_GET['vyear']; 
    

    第一个错误是在这里... vyear是我的文本框的名称和ID。错误 - 未定义索引'vyear'。没有提交表格等,因为我仍然在同一个表格/页面上。

  3. 缴获该值,然后我搜索我的数据库返回所有的具有年生产商(返回)连接到它 -

    $query = "SELECT * FROM `vehicledata` WHERE `year`='$vehicle_year'"; 
    

    显然,这是行不通的,因为我仍然不具有尚未从上面返回的未定义错误的值。我试图改变文本框的名称和ID,没有运气。

  4. 一旦这些记录已被返回,我需要将值添加到一个选择(下拉框)。我不知道如何获得那里的值 - 似乎我需要运行一个循环,我知道如何,只是不知道如何将选项添加到选择框。

    请注意,我的表单没有提交,我需要在提交之前先加载所有相关数据。

任何帮助将不胜感激,thanx家伙。

P.S.一旦我知道如何获取值并添加选项,我将添加针对sql注入。只需要基本知识让我走。

HTML: //这将是我的代码... 搜索只是我的车轮
   

  <?php   

      $vehicle_year = isset($_POST['vehicleyear']) ? $_POST['vehicleyear'] : -1;     

       if ($vehicle_year == -1) { 
       echo 'No Value Returned...'; 
            //returns no value... 
      } else { 
            //How to get the value and echo it out... 
       echo $vehicle_year; 
      } 
//$query = "SELECT * FROM (SELECT * FROM `vehicledata` WHERE `year`='$vehicle_year' ORDER BY `cid` DESC LIMIT 1, 10) AS `table` ORDER BY `cid` ASC"; 
$query = "SELECT * FROM `vehicledata` WHERE `year`='$vehicle_year'"; 

$result = mysql_query($query); 

while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { 
$vehicle_id = $line['cid']; 
$vehicle_year = $line['year']; 
$manufacturer = $line['carfindmake']; 

//Get manufacturer data... 
$images = get_make($vehicle_year); 

if (!empty($make)) { 
    echo 'No data'; 
} else { 
    echo 'Found stuff'; 
} 
} 
    ?> 

      <td align="right"><span style="visibility:hidden" id="makelabel"><strong>Make</strong>&nbsp;&nbsp;</span></td> 
      <!--<td><input name="make" id="make" type="text" class="searchbox" style="visibility:hidden" onClick="toggleVisibility('modellabel'); toggleVisibility('model');"/></td>--> 
      <td><select name="make" id="make" class="searchbox" style="visibility:hidden" onClick="toggleVisibility('modellabel'); toggleVisibility('model');"/></td> 
+3

你不想'$ _ POST [ 'vyear'];' - 如果你的方式被设定为后.. – Wez

+0

从表单标签张贴代码,包括 –

+1

检查您的表单提交方法获取或发布...打印($ _ POST)或$ _GET,以查看哪些值实例化 – Dukeatcoding

回答

0

2)当表单尚未提交时,由于未设置值,这会导致错误。

修复此通过如下:

$vehicle_year = ''; 

if (isset($_POST['vyear'])) { 
    $vehicle_year = $_POST['vyear']; 
} 
+0

我知道如何在发布表单时获得价值。这是问题,虽然,我不发布它,仍然需要价值没有张贴:) –

+0

是的,我意识到你不张贴您的表格。这就是为什么你需要'isset',所以它没有错误。如果你想设置一个默认值,那么在我发布的代码的第一行填写空字符串。 – Jrod

+0

Thanx为您的答复。请看看我上面的代码,我刚刚尝试isset等,但它仍然是错误的。 –

0

我的表格(组张贴)

$vehicle_year = $_GET['vyear']; 

如果表单设置为使用POST,你需要通过$_POST超全局这样来访问表单元素:

$vehicle_year = $_POST['vyear']; 

如果你有问题,因为可能或不可以设置索引,请使用PHP的isset()进行检查。如果索引未设置,则不会导致错误。

if(isset($_POST['vyear'])) { 
    $vehicle_year = $_POST['vyear']; 
} 
+0

我试过Get and Post,仍然没有返回值,错误未定义的索引是为我的文本框命名为vyear。正如我所提到的,我不想发布我的表单,我只需要获取用户输入的值,即“2010”或“1999”等。然后使用该值从我的数据库中获取数据'$ vehicle_year“ –

+0

你可以添加你的HTML到这个问题吗? – SomeKittens

+0

也许我是愚蠢的...我可以在哪里提交代码,评论只允许一定数量的文本被允许。:) –

0

1 - 如果表单设置为POST,则必须使用$ _POST [“vyear”]来恢复该值。

2 - 仔细检查文本框名称的大小写。

+0

我检查过这个案例,改了名字,仍然没有任何结果......就POST而言,请参阅上文。 –