我创建了这个表,它的一部分需要用户输入并将其保存在数据库中。
我正在努力使用户在标签中放置的数据仍然显示出来。基本上输入形式成为输入/输出源。有关如何操作的任何帮助吗?
switch ($selected){
case 'University':
$stmt = $conn->prepare("SELECT employees.afnumber,employees.name,employees.actualpost,university.brevet FROM employees,university WHERE employees.status='Employed' AND employees.afnumber=university.afnumber ORDER BY employees.afnumber DESC LIMIT :start,:end");
$stmt->bindParam(':start', $pages->limit_start, PDO::PARAM_INT);
$stmt->bindParam(':end', $pages->limit_end, PDO::PARAM_INT);
$stmt->execute();
$result = $stmt->fetchAll();
$selectedtable = "<form method='post' action=''>\n";
$selectedtable .= "<table class='sortable'>\n<tr><th>Description</th><th>A</th><th>B</th><th>C</th><th>D</th></tr>\n";
foreach($result as $row) {
$selectedtable .= "<tr><th>Brevet</th><td><input type='text' name='Brevet1' style=' padding: 10px; margin-top:1px; border: solid 2px #c9c9c9; width:50px; height:2px;'></td><td>".$row[0]."</td><td>".$row[2]."</td><td>".$row[3]."</td></tr>
<tr><th>Baccalaureat/BT</th><td><input type='text' name='Baccalaureatbt' style=' padding: 10px; font-size:16px; margin-top:1px; border: solid 2px #c9c9c9; width:50px; height:2px;'></td><td>".$row[1]."</td><td>$row[2]</td><td>$row[3]</td></tr>
<tr><th>License/TS</th><td><input type='text' name='Licensets' style=' padding: 10px; margin-top:1px; border: solid 2px #c9c9c9; width:50px; height:2px;'></td><td>".$row[1]."</td><td>".$row[2]."</td><td>$row[3]</td></tr>
<tr><th>M1</th><td><input type='text' name='M1' style=' padding: 10px; margin-top:1px; border: solid 2px #c9c9c9; width:50px; height:2px;'></td><td>".$row[1]."</td><td>".$row[2]."</td><td>".$row[3]."</td></tr>
<tr><th>Master's Degree</th><td><input type='text' name='Mastersdegree' style=' padding: 10px; margin-top:1px; border: solid 2px #c9c9c9; width:50px; height:2px;'></td><td>".$row[1]."</td><td>".$row[2]."</td><td>".$row[3]."</td></tr>
<tr><th>PHD</th><td><input type='text' name='Phd' style=' padding: 10px; margin-top:1px; border: solid 2px #c9c9c9; width:50px; height:2px;'></td><td>".$row[1]."</td><td>".$row[2]."</td><td>".$row[3]."</td></tr>";
}
$selectedtable .= "</table>\n";
$selectedtable .= "<input type='submit' name='submit' value='Submit' style='width:80px; height:30px; text-align:center; padding:0px;'>\n";
$selectedtable .= "</form>\n";
if(isset($_POST['submit']))
{ $brevet1 = $_POST['Brevet1'];
$baccalaureatbt = $_POST['Baccalaureatbt'];
$licensets = $_POST['Licensets'];
$m1 = $_POST['M1'];
$mastersdegree = $_POST['Mastersdegree'];
$phd = $_POST['Phd'];
$sql1="SELECT Brevet1,Baccalaureatbt,Licensets,M1,Mastersdegree,Phd FROM university";
if ($result=mysqli_query($con,$sql1))
{
$rowcount=mysqli_num_rows($result);
}
if($rowcount==0)
{
$sql="INSERT INTO university(Brevet1,Baccalaureatbt,Licensets,M1,Mastersdegree,Phd) VALUES('$brevet1','$baccalaureatbt','$licensets','$m1','$mastersdegree','$phd')";
$result = mysql_query($sql);
}
else
{
$sql2 = "UPDATE university SET Brevet1 = '$brevet1' , Baccalaureatbt = '$baccalaureatbt', Licensets = '$licensets', M1 = '$m1', Mastersdegree = '$mastersdegree', Phd = '$phd'";
$result2 = mysql_query($sql2);
}
}
break;
答案 0 :(得分:2)
您可以为每个输入设置一个值,如下所示:
<input type='text' name='Brevet1' value="<?php echo $_POST['brevet_1']; ?>">
有三元条件:
echo (!empty($_POST['brevet_1']) ? $_POST['brevet_1'] : '');
修改强>
从数据库中获取数据并像上面一样设置输入值
答案 1 :(得分:1)
这是我在这种情况下一直做的事情。假设您的网页名称为mypage.php
。现在,您使用id
打开mypage.php(例如mypage.php?id=1
,您可以将ID设为$_GET['id']
)。此id
将是您需要插入/更新的表的auto_increment
值。
现在,在mypage.php
上,写下以下代码: -
<form action="someEndFile.php" method="post">
<?php echo $command; ?>
<?php if($command == 1)
{
$userData = fetch via $_GET['id'];
?>
Your input Tags Here
Submit Button Here
<input type='text' name='somename' value='<?php echo $userdata->valueFromTheDatabase; ?>'>
<?php
}
else
{
?>
<input type='text' name='somename'>
<?php
}
?>
</form>
在if(data_exists)
块中,检查表中是否存在ID为id
的任何记录(您收到的是$ _GET ['id'])。如果记录存在,它将进入if
块,command value
将1
,这意味着update
。
如果该ID不存在,则会转到else
,其值为2
,这意味着insert new
。
现在,在您的表单中,回显$command
并放置所有字段。这里检查$command
的值并相应地回显输入标签内的值。
现在在someEndFile.php
文件上,有一个这样的代码: -
<?php
$command = isset($_POST['command']) ? $_POST['command'] : '';
switch($command)
{
case 1:
//update case
write your update query here;
break;
case 2:
//insert case
write your insert query here;
break;
}
?>
您现在可以执行所需的查询。这就是我在这种情况下经常做的事情。
答案 2 :(得分:1)
以下是提交表单时显示输入表单数据的示例。作为奖励,它还显示了一些基本的PHP表单验证:
w3schools Example of showing the form entry on the same page as entered
回显输入页面上输入的值的变量。您可以根据需要在标签格式中根据需要放置echo语句。
实施例: 如果您的表单包含:
Name: <input type="text" name="name">
然后在页面的任何位置显示包含“name”的标签,如下所示:
<?php
//check if name has changed:
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$name = test_input($_POST["name"]);
}
?>
<?php
//echo the new field entry
echo $name;
?>