使用选项标签 PHP 将数据库内容显示到文本框
Displaying database content to textbox using option tag PHP
我是 PHP 编程的完全初学者.. 我在 php 中创建了一个简单的 add/edit/delete.. 我想知道你是否可以帮助我将其转换为简单的搜索使用 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> </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);
?>
应使用 AJAX 将所选名称发送到 php 代码,在这里您将使用该名称从数据库中获取其余内容,然后 return 将其返回到 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);
?>
我相信一切都会好起来的。
我是 PHP 编程的完全初学者.. 我在 php 中创建了一个简单的 add/edit/delete.. 我想知道你是否可以帮助我将其转换为简单的搜索使用 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> </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);
?>
应使用 AJAX 将所选名称发送到 php 代码,在这里您将使用该名称从数据库中获取其余内容,然后 return 将其返回到 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);
?>
我相信一切都会好起来的。