尝试使用用户数据自动填写表单

时间:2013-08-30 19:43:48

标签: php database forms

我是PHP的新手,所以请原谅我的简单问题(我甚至不确定如何询问它或我需要使用哪些关键字)。

基本上,我正在尝试更新数据库中的用户数据。我有一个用于列出所有客户的php(phpselect.php):

<html>
<body>

<?php
#
# Connect to the database 
#
$conn=odbc_connect('database1','','');
if (!$conn)
{exit("Connection Failed: " . $conn);}

#
# SQL statements
#
$sql="SELECT * FROM customer";
$rs=odbc_exec($conn,$sql);
if (!$rs)
{exit("Error in SQL");}

#
# Make a table
#
echo "<table><tr>";
echo "<th>Action</th>";
echo "<th>Customer ID</th>";
echo "<th>Last Name</th>";
echo "<th>First Name</th>";
echo "<th>Middle Initial</th>";
echo "<th>Home Phone</th>";
echo "<th>Cell Phone</th>";
echo "<th>Date of Birth</th>";
echo "<th>Address</th>";
echo "<th>City</th>";
echo "<th>State</th>";
echo "<th>Zip Code</th>";
echo "<th>Employer</th>";
echo "<th>Referrer</th>";
echo "<th>Agent</th></tr>";

#
# Fetch records from SQL result-set
#
while (odbc_fetch_row($rs))
{

#
# Set field variables...
#
$cust_ID=odbc_result($rs,"cust_ID");
$cust_last=odbc_result($rs,"cust_last");
$cust_first=odbc_result($rs,"cust_first");
$cust_mi=odbc_result($rs,"cust_mi");
$home_phone=odbc_result($rs,"home_phone");
$cell_phone=odbc_result($rs,"cell_phone");
$DOB=odbc_result($rs,"DOB");
$street=odbc_result($rs,"street");
$city=odbc_result($rs,"city");
$state=odbc_result($rs,"state");
$zip_code=odbc_result($rs,"zip_code");
$employer=odbc_result($rs,"employer");
$referrer=odbc_result($rs,"referrer");
$agent_ID=odbc_result($rs,"agent_ID");

#
#  ...and display them by variable name
#

echo "<tr>";
echo "<td>edit</td>";
echo "<td>$cust_ID</td>";
echo "<td>$cust_last</td>";
echo "<td>$cust_first</td>";
echo "<td>$cust_mi</td>";
echo "<td>$cust_last</td>";
echo "<td>$home_phone</td>";
echo "<td>$cell_phone</td>";
echo "<td>$DOB</td>";
echo "<td>$street</td>";
echo "<td>$city</td>";
echo "<td>$state</td>";
echo "<td>$zip_code</td>";
echo "<td>$employer</td>";
echo "<td>$referrer</td>";
echo "<td>$agent_ID</td></tr>";
}

#
# Close the connection to the database 
#
odbc_close($conn);

#
# End the table 
#
echo "</table>";
?>
</body>
</html>

...我试图在每一行添加一个链接('Update'),将用户的信息(从数据库)发送到表单中的字段,以便要编辑的字段(phpinsert.php):

<html>
<body>

Enter Customer Information
<br>
(* indicates required fields)

<p>
<form action="phpinsert.php" method="post">
Last Name*: <input type="text" name="cust_last">
<br>
First Name*: <input type="text" name="cust_first">
<br>
Middle Initial: <input type="text" name="cust_mi">
<br>
Home Phone*: <input type="text" name="home_phone">
<br>
Cell Phone: <input type="text" name="cell_phone">
<br>
Date of Birth (mm/dd/yyyy)*: <input type="text" name="DOB">
<br>
Street Address: <input type="text" name="street">
<br>
City: <input type="text" name="city">
<br>
State: <input type="text" name="state">
<br>
Zip Code: <input type="text" name="zip_code">
<br>
Employer: <input type="text" name="employer">
<br>
Referrer: <input type="text" name="referrer">
<br>
<tr>
<td class="formLabel">Agent*:</td>
<td>
<select name="agent_ID" class="formEntry">
<option value="1">Guy Smiley</option></select>
</td>
</tr>
<br><br>
<input type="submit">
</form>
</body>
</html>

我不知道怎么做或者如何正确地问它?

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

您可以将您的值发送到URL中的更新表单页面:

<?php
$info = "cust_id=".$cust_id."&cust_last=".$cust_last; //etc.
$url = "http://".$_SERVER['HTTP_HOST']."/phpinsert.php?".$info;
?>
<!-- html -->
<a href="<?php echo $url; ?>">Update</a>

然后在更新表格中:

Customer ID: <input type="text" name="cust_id" value="<?php echo $_GET['cust_id']; ?>">
<br>
Customer Last: <input type="text" name="cust_last" value="<?php echo $_GET['cust_last']; ?>">

答案 1 :(得分:0)

这是一般性的想法(如果您希望将表单保留在与表格相同的页面上):

为包含所有元素的每一行创建一个列表,即:

<强> PHP

$alldata= "'".$cust_ID."','".$cust_last."','".$cust_first."','". ... ;

将该列表推送到javascript函数中,即:

<强> PHP

echo "<td>$cust_ID</td>";
....
echo "<td>$agent_ID</td>";
echo "<td><a onClick=populateForm(".$alldata."); href=#>Update</a></tr>";

您需要为每个文本框添加一个ID,即:

<强> HTML

Last Name*: <input type="text" id="cust_last" name="cust_last">
First Name*: <input type="text" id="cust_first" name="cust_first">

现在使用javascript将这些值推送到表单中,即:

<强>的Javascript

function populateForm(custid,cust_last,cust_first, ...) {
   document.getElementById('cust_last').value = cust_last;
   ...
}

如果您需要更多帮助,请发表评论,我会进一步详细说明。