[英]Make POST by href link
我正在嘗試通過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>
每次運行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>
我得到與第一個相同的結果
那是因為您有多個具有相同名稱的表格。 因此,您對document.forms['myform']
的JavaScript引用始終會找到該名稱的第一個。
嘗試使名稱更具動態性。 在foreach
循環中,將一些唯一的記錄值(記錄的ID應該很好)附加到name="myform"
,然后附加到對該元素的JavaScript引用。 這應該使表單名稱唯一,並允許JavaScript引用所需的特定表單。
出現這種情況是因為所有表單都具有相同的名稱,因此您需要做的就是使表單(標記名)動態化。 像這樣的名字:
<?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++;?>
document.forms['myform'].submit()
將提交名為“ myform”的表單。 您正在使用該名稱創建$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>
或者,如果它們總是一個接一個,則只需發布previousSibling。
<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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.