使用单选按钮在多个选项之间进行选择后,预先填充表单字段

时间:2014-06-11 19:17:45

标签: php html mysql forms field

我搜索了整个网络,似乎无法找到解决方案。我正在为个人搜索数据库。我可以使用姓氏,然后如果两个人姓氏相同,他们都会在我的页面上打印。我希望能够选择我想要的个体(或者例如)并点击下一个(带有空白表格的页面的超链接),这是我想要的个人信息(以及打印的内容)预填表格中的页面)它允许更加用户友好的方法,然后必须重新键入数据,并避免错过拼写公司名称或驱动程序许可证,例如。我已经多次使用了我的代码但是又来了。这是查找和打印搜索结果的代码。还没有单选按钮,因为我想弄明白这一点。

<div id="results" style="width:750px;height:225px; text-align: center">

<?php

$host = "localhost"; //server
$db = ""; //database name
$user = ""; //databases user name
$pwd = ""; //password
mysql_connect($host, $user, $pwd) or die(mysql_error());
mysql_select_db($db) or die(mysql_error()); 

$searchTerm = trim($_GET['searchname']);

// Check if $searchTerm is empty
if($searchTerm == "")
{
echo "Enter name you are searching for.";
exit();
} 

else 
{
    //$sql = "SELECT * FROM contractor WHERE CONCAT(FIRSTNAME,' ',LASTNAME,' ',    
  ARRIVAL) like '%$searchTerm%' GROUP BY FIRSTNAME";
$sql= "SELECT  * FROM contractor WHERE CONCAT(FIRSTNAME,' ',LASTNAME,' ', ARRIVAL)   
 like '%$searchTerm%'";
    $query = mysql_query($sql);

    $count=mysql_num_rows($query);
//array_unique($count);
    if(($count)>=1)
    {
    $output = "";

    while($row = mysql_fetch_array($query))
    {

    $output .= "First Name: " . $row['FIRSTNAME'] . "<br />";
    $output .= "Last Name: " . $row['LASTNAME'] . "<br />";
    $output .= "Arrival: " . $row['ARRIVAL'] . "<br />";    
    }
    echo $output; 
    //echo array_unique($output);
    }
    else
    echo "There was no matching record for the name " . $searchTerm;
}
?>

</div>  

这是我的表单字段的代码,当然这是一个空表单,只是在提交后提交给数据库。

 <form action="insert_submit.php" method="post" style="margin-left:35px;">

First Name: <input type = "text" name="FIRSTNAME" id="FIRSTNAME" />


Last Name: <input type = "text" name="LASTNAME" id="LASTNAME"/>


Purpose: <input type = "text" name="PURPOSE" id="PURPOSE"/>


<br>
</br>
Company: <input type = "text" name="COMPANY" id="COMPANY" />


DL #: <input type = "text" name="DRIVERL" id="DRIVERL" />



 <br>
</br>

    <input type="radio" name="STATUS" id="STATUS" value="Checked In">Log In
    <br></br>
    <input type="radio" name="STATUS" id="STATUS" value="Checked Out">Log Out
    <br></br>
<input type="submit" value="Submit" >

<br>
</br>

</form> 

2 个答案:

答案 0 :(得分:0)

所以基本上你需要的是在第一页中有一个相同名称的lis,或者理想的一个名字,如:

内容,内容,内容,

FirstName,LastName FirstName,LastName

而不是单击其中任何一个,而不是用户被重定向到另一个页面,其中包含所选人员的所有详细信息。如果我找对你。

  1. 我不会在第一页上使用checkbos,只需将此人的姓名改为: http://domain.com/userdetails?userid=666
  2. 因此,您将用户ID传递给第二页。第二页上的php代码可以感谢从数据库中绘制用户详细信息并填充表单。

    为此,您可以以逐行方式生成表单,也可以使用DomDocument tofind并填充相关的值字段。

    第二页表单生成: 您选择具有id的行,而不是将其提取到名为$ array。

    的数组中
    $array = mysql_fetch_array($query); //this query selected the row for the user with the id
    
    echo '<form method="POST">'."\n";
    echo '<input name="firstname" type="text" value="'.$array['firstname'].'">'."\n";
    echo '<input name="lastname" type="text" value="'.$array['lastname'].'">'."\n";
    echo '</form>';
    

    我希望你现在能得到这个想法。

答案 1 :(得分:0)

所以你的输出行就像(清理以适应你的格式)

$output .= '<a href="'.$_SERVER['PHP_SELF'].'?userid='.$row['UNIQUEID'].'">
      First Name: '.$row['FIRSTNAME'].'<br />
      Last Name: '.$row['LASTNAME'].'<br />
      Arrival: '.$row['ARRIVAL'].</a><br />';    

并在页面中构建一个条件,如果你有UNIQUEID进来查找并填写表格,如

Company: <input type = "text" name="COMPANY" id="COMPANY" value="<?PHP echo $row['COMPANY']; ?>" />

编辑以适合您的数据库当然

示例代码格式

if(something){
    do something
}else{
   while(){
   } # end while
}  # easy to see this matches the if/else set of brackets

预先填充的其他信息

最简单的可能会在同一页面上。寻找进入页面的用户ID

if(!isset($_GET['userid'])){ 
     # meaning we do not have a userid from a url that we generated above
     # insert all your code to generate the links
}else{
     # meaning we *have* a userid from a url that we generated above

     # do your database query based on the userid such as
   $sql='select * from mytable where userid=?';
   $result=sqlsrv_query($db,$sql,array($_GET['userid']),array('Scrollable'=>'static'));
     # or use mysqli, pdo or whatever...  just watch for sql injection
   $row=sqlsrv_fetch_array($result,SQLSRV_FETCH_ASSOC));
     # assuming we will not have more than one element returned
   ?>
   First Name: <input type = "text" name="FIRSTNAME" id="FIRSTNAME" value="<?PHP echo $row['firstName']; ?>"/>

    and so forth...  that should get you started