您好第一次这样做,基本上我对如何从数据库重新填充文本框感到困惑。
我目前的问题是,基本上我的数据库'USER'和'STATISTICS'中有两个表。 目前正在运行的是我的代码在'USER'表中查找'User_ID'的值并填充下拉列表中的值。
我想要的是填充文本字段,对应于数据库中查找'User_ID'E'G' goal_scored','assist','clean_sheets'等的那些值。
我很困惑,我已经查看了各种不同的问题,但找不到我想要的东西。
<?php
$link = mysql_connect("localhost","root","");
mysql_select_db("f_club",$link);
$sql = "SELECT * FROM user ";
$aResult = mysql_query($sql);
?>
<html>
<body>
<title>forms</title>
<link rel="stylesheet" type="text/css" href="css/global.css" />
</head>
<body>
<div id="container">
<form action="update.php" method="post">
<h1>Enter User Details</h1>
<h2>
<p> <label for="User_ID"> User ID: </label> <select id="User_ID" id="User_ID" name="User_ID" >
<br> <option value="">Select</option></br>
<?php
$sid1 = $_REQUEST['User_ID'];
while($rows=mysql_fetch_array($aResult,MYSQL_ASSOC))
{
$User_ID = $rows['User_ID'];
if($sid1 == $id)
{
$chkselect = 'selected';
}
else
{
$chkselect ='';
}
?>
<option value="<?php echo $id;?>"<?php echo $chkselect;?>>
<?php echo $User_ID;?></option>
<?php }
?>
I had to put this in because everytime I have text field under the User_ID it goes next to it and cuts it off :S
<p><label for="null"> null: </label><input type="text" name="null" /></p>
<p><label for="goal_scored">Goal Scored: </label><input type="text" name="Goal_Scored" /></p>
<p><label for="assist">assist: </label><input type="text" name="assist" /></p>
<p><label for="clean_sheets">clean sheets: </label><input type="text" name="clean_sheets" /></p>
<p><label for="yellow_card">yellow card: </label><input type="text" name="yellow_card" /></p>
<p><label for="red_card">red card: </label><input type="text" name="red_card" /></p>
<p><input type="submit" name="submit" value="Update" /></p></h2>
</form>
</div>
</body>
</html>
如果有人可以帮助理解如何进入下一阶段,将非常感谢x
答案 0 :(得分:0)
我建议不要把时间花在像AJAX这样复杂的东西上,而是建议使用user.php?id=1
等简单的页面路径。
制作一个user.php
文件(与您的一样),如果设置了id
(if isset($_GET['id'])
),请从数据库中选择该用户(当然,在清理了您的输入之后){{ 1}}(我当然假设每个用户都有一个select * from users where id = $id
。
您仍然可以使用id
,但请记得使用<select>
关闭它。你最终会得到这样的东西:
</select>
这会将<form method="get">
<label for="user">Select user:</label>
<select name="id" id="user">
<option value="1">User 1</option>
...
</select>
<submit name="submit" value="Select user" />
</form>
发送到当前页面,然后您可以填写表单。如果您还想编辑该数据,请创建一个新表单,其中的数据填写为?id=<id>
等代码,然后确保<input type="text" name="goal_scored" value="<?php echo $result['goal_scored']; ?>" />
并监听method="post"
并更新您的数据库。
一个例子:
isset($_POST['submit'])
请记住,这只是我所说的想法的一个例子,许多代码已被省略。我通常不喜欢在<?php
// init
// Use mysqli_ instead, mysql_ is deprecated
$result = mysqli_query($link, "SELECT id, name FROM users");
// Create our select
while ( $row = mysqli_fetch_array($link, $result, MYSQL_ASSOC) ) {?>
<option value="<?php echo $result['id']; ?>"><?php echo $result['name'] ?></option>
<?php}
// More code ommitted
if (isset($_GET['id'])) {
$id = sanitise($_GET['id']); // I recommend creating a function for this,
// but if only you are going to use it, maybe
// don't bother.
$result = mysqli_query($link, "SELECT * FROM users WHERE id = $id");
// now create our form.
if (isset($_POST['submit'])) {
// data to be updated
$data = sanitise($_POST['data']);
// ...
mysqli_query($link, "UPDATE users SET data = $data, ... WHERE id = $id");
// To avoid the 'refresh to send data thing', you might want to do a
// location header trick
header('Location: user.php?id='.$id);
}
}
标签之外写实际的HTML,但我认为它可以工作。特别是对于较小的东西。