使用选项标记PHP将数据库内容显示到文本框

时间:2015-07-28 03:49:34

标签: php html sql select drop-down-menu

我是一个完整的PHP编程初学者..我在php中创建一个简单的添加/编辑/删除..我想知道你是否可以帮助我将其转换为使用select / option标签的简单搜索程序。我的目标是当我在标签中选择一个名称时,数据库字段将出现在文本框中。

的index.php

<html>
<body>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
<table align="center">
<tr>
<td>Members:</td>
<td>
<select id="choice" name="choice">
<option value="kelvin">Aljohn Kelvin</option>
<option value="belen">Belen</option>
<option value="keneth">Aldrin Keneth</option>
</select>
</td>
</tr>
<tr>
<td>Firstname:</td>
<td><input type="text" name="fname" /></td>
</tr>
<tr>
<td>Lastname:</td>
<td><input type="text" name="lname" /></td>
</tr>
<tr>
<td>Email Address:</td>
<td><input type="text" name="email" /></td>
</tr>
<tr>
<td>City / Address:</td>
<td><input type="text" name="address" /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="submit" value="Save" /></td>
</tr>
</table>

<?php

if(isset($_POST['submit'])){
include 'database.php';
$firstname=$_POST['fname'];
$lastname=$_POST['lname'];
$emailadd=$_POST['email'];
$cityaddress=$_POST['address'];

mysql_query("INSERT INTO `tblinfo`(Firstname,Lastname,Email,Address)
VALUES('$firstname','$lastname','$emailadd','$cityaddress')");

}
?>                        
</form>

<table align="center">
<?php
include("database.php");
$result = mysql_query("SELECT * FROM tblinfo");

while($test = mysql_fetch_array($result)){
$id = $test['UserID'];
echo "<tr align = 'center'>";
echo "<td><font color = 'black'>" .$test['UserID']."</font></td>";
echo "<td><font color = 'black'>" .$test['Firstname']."</font></td>";
echo "<td><font color = 'black'>`enter code here`" .$test['Lastname']."</font></td>";
echo "<td><font color = 'black'>" .$test['Email']."</font></td>";
echo "<td><font color = 'black'>" .$test['Address']."</font></td>";
echo "<td> <a href='view.php?UserID=$id'>Edit</a>";
echo "<td> <a href='delete.php?UserID=$id'><center>Delete</center></a>";

echo "</tr>";
}
mysql_close($connect);
?>
</table>
</body>
</html>

view.php

<?php
require("database.php");
$id = $_REQUEST['UserID'];

$result = mysql_query("SELECT * FROM tblinfo WHERE UserID = '$id'");
$test = mysql_fetch_array($result);

if(!$result){
die ("ERROR: Data Not Found!");
}
$FirstName = $test['Firstname'];
$LastName = $test['Lastname'];
$EmailAdd = $test['Email'];
$CityAddress = $test['Address'];


if(isset($_POST['save'])){
$firstname_save = $_POST['fname'];
$lastname_save = $_POST['lname'];
$email_save = $_POST['email'];
$address_save = $_POST['address'];
mysql_query("UPDATE tblinfo SET Firstname = '$firstname_save',Lastname = '$lastname_save',Email = '$email_save',Address = '$address_save' WHERE UserID = '$id'") or die(mysql_error());
echo "Saved!";

header("Location: index.php");
}
mysql_close($connect);
?>

delete.php

<?php
include("database.php");
$id = $_REQUEST['UserID'];

mysql_query("DELETE FROM tblinfo WHERE UserID = '$id'") or die(mysql_error()); //sending query to delete

header("Location: index.php");
?>

database.php中

<?php
$connect = mysql_connect('localhost', 'root', '');

if(!$connect){
die('Could not connect to database! ' . mysql_error());
}
mysql_select_db("kelvindb", $connect);
?>

1 个答案:

答案 0 :(得分:0)

应使用AJAX将所选名称发送到php代码,在这里,您将使用该名称从数据库中获取其余内容并将其返回给JavaScript(使用AJAX)。现在,您可以使用简单的javascript将值赋予各个输入文本框(即电子邮件,地址,lname,fname)。

只要选择了选项,就应该调用函数callToAjax()。

function callToAjax()
{
   var selectID = document.getElementById("choice");
   var name= selectID.options[selectID.selectedIndex].value;
   var data="fullName="+name;
   $.ajax({  
     type: 'POST',  
     url: 'fileNameWhereFetchFromDatabaseIsPerformed.php', 
     data: data,
     success: function(response)
     {
        /* response will be sent as a json array from
           fileNameWhereFetchFromDatabaseIsPerformed.php where 
           (key,value) pair will be stored, use it to assign values to each 
           textbox.*/
       document.getElementByName('fname').Value = response['fname'];
       document.getElementByName('lname').Value = response['lname'];
       document.getElementByName('email').Value = response['email'];
       document.getElementByName('address').Value = response['address'];

     }
   });
}

现在在fileNameWhereFetchFromDatabaseIsPerformed.php中使用以下代码:

<?php
$names = explode(" ",$_POST['fullName']);

$returnArray = array();
$returnArray['fname']=$names[0];
$returnArray['lname']=$names[1];

$result = mysql_query("SELECT email, address FROM tblinfo WHERE fname = $returnArray['fname'] and lname= $returnArray['lname']");
if (!$result) {
    echo 'Could not run query: ' . mysql_error();
    exit;
}
$row = mysql_fetch_row($result);

$returnArray['email'] = $row[0]; 
$returnArray['address'] = $row[1]; 

echo json_encode($returnArray);

?>

我相信事情会好起来的。