当我尝试通过 POST 将行的 id 值发送到另一个页面时,此页面将始终 GET id value 1
Posted
技术标签:
【中文标题】当我尝试通过 POST 将行的 id 值发送到另一个页面时,此页面将始终 GET id value 1【英文标题】:When I try to send id value of row via POST to another page, this page will always GET id value 1 【发布时间】:2017-04-08 02:00:11 【问题描述】:我开始学习网络开发,并尝试将数据库生成的行之一的“id”发送到另一个页面。由于javascript代码,这些行是可点击的,所以我可以选择我想要的任何行。问题是,即使 POST 方法看起来是正确的:
<form id="send" method="POST" action=<?php echo "secondpage.php?id=". $row['id']; ?> ></form>
// 在检查主页面时,它获取值。
然而 第二页总是收到 1 的 id 值。如果我点击 id=18 或任何其他的行都没关系。它总是会收到 1 的值...
我听说这可能是我放在 PHP 代码下的 javascript 代码的问题。
这是一段 PHP 代码:
<div id="content">
<table id="usersTable" class="table table-bordered table-hover table-sm ">
<form action=http://localhost/dodawanie.php>
<input class="btn btn-primary" type="submit" value="Dodawanie">
</form>
<?php if ($result->num_rows > 0)
while($row = $result->fetch_assoc()) ?>
<tr>
<td><?php echo "id: ". $row['id']; ?> </td>
<td><?php echo "Name: ". $row["first_name"]; ?> </td>
<td><?php echo "Last: ". $row["last_name"];?> </td>
<form id="send" method="POST" action=<?php echo "secondpage.php?id=". $row['id']; ?> >
</form>
</tr>
<?php
else
echo "0 results";
$conn->close();
?>
</table>
</div>
这里是javascript:
<script type = "text/javascript">
$(document).ready(function()
$('#usersTable').find('tr').click( function()
// alert('You clicked row ' + ($(this).index()+1) );
$('#send').submit();
);
);
</script>
我很乐意接受任何帮助以在此处查找错误。
【问题讨论】:
我不建议在进行 POST 时在查询字符串中发送参数,尽量遵守 REST 原则。但无论如何,渲染的action
属性是什么?
那么 secondpage.php 文件里面有什么?
任何时候通过 URL 发送参数,它们都将通过 GET 发送。你也不应该在<table>
中嵌套<form>
:***.com/questions/5967564/form-inside-a-table
至于 secondpage.php 目前没有太多代码,但是我尝试检查$id= $_GET['id'];
发送的内容
你可以用ajax代替
【参考方案1】:
将<form id="send"
id 值更改为唯一
或使用类似下面的类:<form class="form_send"
然后在您的 javascript 中搜索单击的 tr
内的 form_class:
$(document).ready(function()
$('#usersTable').find('tr').click( function()
$(this).find('form.form_send').submit();
);
);
【讨论】:
【参考方案2】:ID 必须是唯一的。 $('#send').submit()
只查找并提交具有该 ID 的第一个表单。
例如,您可以将行 id 添加到表单的 id 属性中以使其唯一。
【讨论】:
以上是关于当我尝试通过 POST 将行的 id 值发送到另一个页面时,此页面将始终 GET id value 1的主要内容,如果未能解决你的问题,请参考以下文章