我正在尝试通过href链接发布帖子。我正在使用包含这些链接的下拉菜单。问题是,无论何时点击,我都会得到与第一个相同的结果。我希望每个链接都发布到从具有该id的查询获得的结果,而不是第一个。
<li>
<?php $rows=query("SELECT * FROM filmi") ?>
<?php foreach($rows as $r):?>
<form name="myform" method="post" action="description.php">
<input type="hidden" name="id" value="
<?=$r["id"]?>"/>
</form>
<a href="description.php" onclick="document.forms['myform'].submit(); return false;">
<?=$r["titulli"]?>
</a>
<?php endforeach?>
</li>
答案 0 :(得分:0)
每次运行Foreach循环时都会打开一个新表单。您还为每个交互使用相同的输入字段名称。
试试这个:
<li>
<?php $rows=query("SELECT * FROM filmi") ?>
// Your form is opened and closed outside of the Foreach() loop.
// This means all of your hidden fields will print within the same form.
<form name="myform" method="post" action="description.php">
<?php foreach($rows as $r):?>
// If you're expecting more than one id, you'll need to
// post your form using array syntax. Each "id" will be posted
// to PHP in incremented fashion.
<input type="hidden" name="id[]" value="<?=$r["id"]?>"/>
<a href="description.php" onclick="document.forms['myform'].submit(); return false;">
<?=$r["titulli"]?></a>
<?php endforeach?>
</form>
</li>
答案 1 :(得分:0)
我得到与第一个相同的结果
那是因为你有多个同名的表格。因此,您对document.forms['myform']
的JavaScript引用始终会以该名称找到第一个。
尝试使名称更具动态性。在foreach
循环中,将一些唯一的记录值(记录的ID应该很好地)添加到name="myform"
,然后添加到该元素的JavaScript引用。这应该使表单名称唯一,并允许JavaScript引用您想要的特定表单。
答案 2 :(得分:0)
appen因为你的所有表单都有相同的名称,因为你需要做你想要的表格(标签名称)动态。像这样的名字:
<?php $i = 0;?>
<?php foreach($rows as $r):?>
<form name="myform<?php print $i;?>" method="post" action="description.php">
<input type="hidden" name="id" value="<?=$r["id"]?>"/>
</form>
<a href="description.php" onclick="document.forms['myform<?php print $i;?>'].submit();
return false;">
<?php $i++;?>
答案 3 :(得分:0)
document.forms['myform'].submit()
将提交名为&#34; myform&#34;的表单。您正在以该名称创建$rows
表单,因此只会发送第一个表单。
我建议以不同的方式命名每个人:(查看表单名称和onclick事件)
<li>
<?php $rows=query("SELECT * FROM filmi") ?>
<?php foreach($rows as $r):?>
<form name="myform<?=$r["id"]?>" method="post" action="description.php">
<input type="hidden" name="id" value="<?=$r["id"]?>" />
</form><a href="description.php" onclick="document.forms['myform<?=$r["id"]?>'].submit(); return false;">
<?=$r["titulli"]?>
</a>
<?php endforeach?>
</li>
或者,如果他们总是一个接一个,只需发布上一个兄弟。
<li>
<?php $rows=query("SELECT * FROM filmi") ?>
<?php foreach($rows as $r):?>
<form method="post" action="description.php">
<input type="hidden" name="id" value="<?=$r["id"]?>" />
</form><a href="description.php" onclick="this.previousSibling.submit(); return false;">
<?=$r["titulli"]?>
</a>
<?php endforeach?>
</li>