如何根据数据库的搜索结果预填充字段

时间:2014-06-05 14:19:00

标签: php html mysql

我是堆叠溢出的新手,非常感谢所有的帮助。我目前有一个基本列的数据库,名称id公司等。我创建了一个搜索查询,根据名字,姓氏或时间戳日期在这个列表中移动。我能够在搜索的查询页面上打印结果,但希望它在与新条目相同的表单页面上预填充。我能够从查询页面链接到表单页面,但不知道如何在表单页面上填充这些结果。

我当前的查询页面打印如下:

       <!DOCTYPE html>
     <html>
       <head> 
     <title> 

      </title>
       </head>
    <body>

      <div id="container" style="width:750px;background-color:#FFFE8D;margin-left: 250px">

    <div id="Back" style="float:left; background-color:#FFFE8D;">
    <form action="http://localhost/contractor/existingcontractorpage3.php">
    <input type="submit" value="Back">
    </form>
    </div>
    <div id="Is this the Contractor?" style="float:right; background-color:#FFFE8D;">
    <form action="http://localhost/contractor/redirectcontractorpage.php">
    <input type="submit" value="Next">
    </form>
    </div>

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

<h3> If this is the contractor, please move on to the next page using the corresponding button above. </h3>
<h3> Please enter the exact information on the next page. </h3> 
</div>

<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%'";  
                $query = mysql_query($sql);
                    $count=mysql_num_rows($query);

        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;
      }
        else
       echo "There was no matching record for the name " . $searchTerm;
}
  ?>

</div>
<br> </br>
<br> </br>  
      </body>
     </html>

现在理想情况下我希望结果在此处弹出,如果可能在每个结果的右侧有一个单选按钮(如果有多个),则选择并继续到表单页面以预先填充每个字段。表单页面就像这样:

          <form action="insert_submit.php" method="post">

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

 <br>
 </br>

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

 <br>
 </br>

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

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

<br>
</br>

Who here to see: <input type = "text" name="WHOHERETOSEE" id="WHOHERETOSEE"/>

<br>
</br>

<input type="submit" value="Submit">

<br>
</br>

</form> 

非常感谢!希望尽快收到回复,因为这是我项目的最后一根稻草。

2 个答案:

答案 0 :(得分:1)

最简单的方法是从数据库中提取数据,就像您要将表单添加到页面中一样。然后在你的循环中打印出表单字段:

您需要为每个收音机指定一个唯一的名称。您可以使用递增ID,也可以将其与行名称相同。

方法1:

  while($row = mysql_fetch_array($query))
{
    $output .= "<label>First Name: " . $row['FIRSTNAME'] . "</label><input type=\"radio\" name = \"radio[]\" value=\"".$row['FIRSTNAME']." ".$row['LASTNAME']."\"/>";
    ..
    ..
 }

然后,当提交from时,您可以使用GET或POST从单选按钮获取值。

设置name =“radio []”将所有值放在一个数组中,一旦提交表单,就可以在下一页上获得。

在表单提交后的下一页上,$ _POST ['radio']或$ _GET ['radio']将返回您指定的所有值的数组。注意上面是如何填充value属性的。为每一行执行此操作。

使用my_sql连接时也要小心。它从PHP 5.5.0开始折旧。使用mysqli或PDO代替它,它更安全。 http://ie1.php.net/function.mysql-connect

检查此链接。它比较并提供了两个例子

答案 1 :(得分:0)

我没有看到您在哪里连接查询搜索和表单页面,但您可以在URL中创建包含GET参数中的数据的链接,因为我在这些字段中看不到密码或私有材料。然后使用php填充表单。

$url = "your_form_page?";
while($row = mysql_fetch_array($query))
{
    $url .= "fname=" . $row['FIRSTNAME'];
    $url .= "&lname=" . $row['LASTNAME'];
    $url .= "&arrival=" . $row['ARRIVAL'];
 }

// $url = your_form_page?fname=bob&lname=jones&arrival=blah    

然后填写表格..

<form action="insert_submit.php" method="post">

  First Name: <input type = "text" name="FIRSTNAME" id="FIRSTNAME" value="<?php echo $_GET['fname']; ?>" />

希望这有助于或至少让您思考正确的方向。