我完全被困在这里,在发布时发现了数十个样本以获取和设置值。我想做的是 -
让用户将车辆年份模型输入到我的表单中的文本框中(设置为发布)
然后我需要将此值变为变量状态
$vehicle_year = $_GET['vyear'];
第一个错误在这里... vyear是我的文本框的名称和ID。错误 - 未定义的索引'vyear'。没有提交表格等,因为我仍然在同一表格/页面上。
捕获此值后,我会搜索我的数据库,以便返回所有附有一年(已退回)的制造商 -
$query = "SELECT * FROM `vehicledata` WHERE `year`='$vehicle_year'";
显然它不起作用,因为我仍然没有从上面返回的带有未定义错误的值。我试图更改文本框的名称和ID,没有运气。
一旦返回这些记录,我需要将值添加到选择(下拉)框中。我不知道如何获取值 - 似乎我需要运行一个循环,我知道如何,只是不知道如何将选项添加到选择框。
请注意我的表单未提交,我需要先提交所有相关数据才能提交。
任何帮助都将受到赞赏,感谢你们。
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> </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>
答案 0 :(得分:0)
我的表格(设为发布)
$vehicle_year = $_GET['vyear'];
如果您的表单设置为使用POST,则需要通过$_POST
超全局访问表单元素:
$vehicle_year = $_POST['vyear'];
如果由于索引可能设置或未设置而遇到问题,请使用PHP的isset()
进行检查。如果未设置索引,则不会导致错误。
if(isset($_POST['vyear'])) {
$vehicle_year = $_POST['vyear'];
}
答案 1 :(得分:0)
1 - 如果表单设置为POST,则必须使用$ _POST [“vyear”]来恢复该值。
2 - 仔细检查文本框名称的大小写。
答案 2 :(得分:0)
2)由于未设置值,因此尚未提交表单时会出错。
通过以下方式解决此问题:
$vehicle_year = '';
if ( isset( $_POST['vyear'] ) ) {
$vehicle_year = $_POST['vyear'];
}