我想做什么: 使用编辑按钮从表中的mysql数据库加载数据。
出了什么问题: 单击编辑按钮时,它不会在编辑表单上加载数据。
我的尝试: 我在家里尝试了以下代码在Firefox上,它运行得很好。但是在工作中它无法在编辑表单中加载Firefox中的数据,而在IE中单击按钮则无效。
<?php
echo '<table id="viewAll">';
echo '<tr>';
echo '<th>Product</th>';
echo '<th>Status</th>';
echo '<th>Summary</th>';
echo '<th>Created</th>';
echo '<th>Updated</th>';
echo '<th>Edit</th>';
echo '</tr>';
while ($data=mysqli_fetch_array($result)){
echo '<tr align="center">
<td>'.$data['product'].'</td>
<td>'.$data['status'].'</td>
<td align="left">'.$data['summary'].'</td>
<td>'.$data['created'].'</td>
<td >'.$data['updated'].'</td>';
echo "<td><a href=\"editForm.php?id=$data[id]\" style=\"text-decoration: none\"><input type=\"submit\" value=\"Edit\" /></a></td>";
echo '</tr>';
}#end of while
}#end of if
echo '</table>';
?>
然后我做:
$id=$_GET['id'];
$query="SELECT * FROM tickets WHERE id='$id'";
$result = mysqli_query($db,$query) or die( "My query ($query) generated an error: ".mysql_error());
$data=mysqli_fetch_array($result);
mysqli_close($db);
我使用数据数组中的内容将其加载到编辑表单中的字段中。
不幸的是,这在IE中不起作用。单击编辑按钮不会执行任何操作。有人可以告诉我如何解决它?谢谢。
答案 0 :(得分:2)
您不应该使用<input type="submit" value="edit" name="edit" />
。
只有"<a href='editForm.php?id='".$data['id']."' style='text-decoration: none' />Edit</a>"
才能将数据发送到editForm.php
页面。
PS:提交按钮只能用于提交表单中的所有表单元素。
答案 1 :(得分:2)
尝试使用:
echo "<td><form action=\"editForm.php\" method=\"get\"><input type=\"hidden\" name=\"id\" value=\"$data['id']\" style=\"text-decoration: none\" /><input type=\"submit\" value=\"Edit\" /></form></td>";
这意味着您仍然可以使用按钮。
此外,我强烈建议您不要将表格用于表格数据,找到替代方案,例如<div>
s。
请记住清理SQL查询,否则您可能会受到SQL注入攻击。
(例如$id=$_GET['id'];
=&gt; $id=mysqli_real_escape_string($conn, $_GET['id']);
其中$conn
是您的MySQL连接对象。)
您可以在Google上搜索上述任何内容。
答案 2 :(得分:1)
以这种方式纠正您编写按钮的行
echo "<td><a href=\"editForm.php?id=$data[id]\" style=\"text-decoration: none\">Edit</a></td>";
点击按钮尝试提交表单。但你想要做的是访问页面editForm.php
PS:你应该阅读一些关于PHP和html的教程来学习最佳实践;)
答案 3 :(得分:0)
在第一个PHP脚本的while循环中,回显编辑按钮的行是错误的
您必须使用连接函数.
和引号来获取$data["id"]
中的值
您的第echo "<td><a href=\"editForm.php?id=$data[id]\" style=\"text-decoration: none\">Edit</a></td>";
行必须替换为:
echo "<td><a href=\"editForm.php?id=".$data['id']."\" style=\"text-decoration: none\">Edit</a></td>";
答案 4 :(得分:0)
或者你可以用jQuery以一种很好的方式做到这一点。请尝试阅读this。