我是HTML / PHP代码的新手。
我正在尝试构建一个表单,该表单将根据提供的键值(Vehicle VRN)搜索MySQL数据库。目前我已经对提交代码进行了排序,我可以通过点击“提交新内容”
将新客户添加到Customers
数据库
但是,我无法使搜索功能正常工作,例如输入车辆VRN并使用该客户信息填写表格的其余部分
这是HTML表单:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ABC Autorite Ltd</title>
<link rel="stylesheet" href="style/style.css" type="text/css" media="screen" />
<script type="text/javascript" src="style/accordian.pack.js"></script>
</head>
<body onload="new Accordian('basic-accordian',5,'header_highlight');">
<div id="logo"><h1>ABC Autorite</h1></div>
<div id="basic-accordian" >
<div id="test-header" class="accordion_headings header_highlight">Customers</div>
<div id="test-content">
<div class="accordion_child">
<h1>Search customer database or submit new details</h1>
<div class="form_layout">
<form method="post" id="Customer">
<select name="title">
<option>Mr.</option>
<option>Dr.</option>
<option>Ms.</option>
<option>Mrs.</option>
</select>
<input type="text" name="first_name" placeholder="First Name" value="<?php echo $first_name; ?>">
<input type="text" name="last_name" placeholder="Last Name">
<input type="text" name="phone_number" placeholder="Phone">
<input type="text" name="email_address" placeholder="Email Address">
<input type="text" name="address_line_1" placeholder="Address">
<input type="text" name="postcode" placeholder="Postcode">
<input type="text" name="vrn" placeholder="VRN">
<input type="text" name="make" placeholder="Make">
<input type="text" name="model" placeholder="Model">
<input type="text" name="year" placeholder="Year">
<div class="form_buttons">
<input type="submit" name="search" Value="Search" onclick="form.action='search.php';"/>
<input type="submit" name="submit" Value="Submit New" onclick="form.action='submit.php';"/>
</div>
</form>
</div>
</div></div>
<div id="test1-header" class="accordion_headings">New Job Card</div>
<div id="test1-content">
<div class="accordion_child">
<h1>Create a new Job Card</h1>
</div>
</div>
<div id="test2-header" class="accordion_headings">Job Cards</div>
<div id="test2-content">
<div class="accordion_child">
<h1>Search for a previous Job Card</h1>
</div>
</div>
</div>
</div>
<div id="footer">
<p>Copyright ABC Autorite Ltd</p>
</div>
</body>
</html>
这是PHP搜索脚本:
<?php
$servername="192.168.0.8";
$username="my_admin";
$password="my_password";
$dbname="ABCAUTORITE";
// Opens a connection to a MySQL server
$connection=mysql_connect ($servername, $username, $password);
if (!$connection) { die('Not connected : ' . mysql_error());}
// Set the active MySQL database
$db_selected = mysql_select_db($dbname, $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}
$vrn = $_POST['vrn'];
$sql = mysql_query("SELECT * FROM Customers WHERE vrn like '%$vrn%'");
while($row = mysql_fetch_array($sql))
{
echo $row['first_name'];
echo $row['last_name'];
}
?>
我现在暂时退回first_name
和last_name
作为测试&#39;在我添加其余值之前。
这让我头疼几个小时,所以我在这里寻求任何帮助。
感谢。
答案 0 :(得分:0)
您可以通过查看$_POST[]
变量isset
<?php # customer.php
if(isset($_POST['search'])){
echo 'pressed the search button.';
while($row = mysql_fetch_assoc($sql)){
$form[] = '<input type="text" name="first_name" value="'.$row['first_name'].'">';
$form[] = '<input type="text" name="last_name" value="'.$row['last_name'].'">';
// etc
}
} elseif(isset($_POST['submit'])){
# execute code to submit user.
} else {
# render the form normally.
$form[] = '<input type="text" name="first_name" placeholder="First Name" value="">';
$form[] = '<input type="text" name="last_name" placeholder="Last Name" value="">';
// etc.
}
?>
只需使用标准表格。
<!-- Still in customer.php -->
<form method="post" id="Customer" action="./customer.php">
<?php
foreach($form as $v){
echo $v;
}
?>
<div class="form_buttons">
<input type="submit" name="search" Value="Search" />
<input type="submit" name="submit" Value="Submit New" />
</div>
</form>
单独使用PHP和HTML,您需要在1页中执行所有操作,这意味着您需要使用所需的值生成表单。 好的..如果你不想,你不必这样做,但我会真的推荐它。这样你的代码就可以在一起而不会分开。
现在有一百万种方法可以对此进行编码,我只选择了一个您可以轻松理解的方法。
Javascript和PHP的组合。使用Javascript(我真的建议使用jQuery)在服务器上请求一个php文件,让它返回一个json格式的对象。然后使用jQuery更新已渲染的表单。
切换到数据库的PDO,以允许将发布数据绑定到预准备语句。目前,您的代码对SQL注入开放。