我有一个这样的表格:
<form id="cars" action="file.php" method="post">
<a href="#" onclick="document.getElementById('cars').submit();"><input type="hidden" value="ford" name="model" />Ford</a>
<a href="#" onclick="document.getElementById('cars').submit();"><input type="hidden" value="toyota" name="model" />Toyota</a>
</form>
然而,$_POST['model']
给出了错误&#34;未定义的索引:model&#34;。那有什么不对?
答案 0 :(得分:3)
我不认为你的方法会按照你的意愿运作。您需要重新考虑您的方法。为什么不直接使用链接和查询字符串?
这是我尝试使用你的技术时最简单的方法,因为我认为你有理由这样做:
<?php
if(isset($_POST['model']))
echo $_POST['model'];
?>
<script type="text/javascript">
function postBack(o) {
document.getElementsByName('model')[0].setAttribute("value", o);
document.getElementById('cars').submit();
}
</script>
<form id="cars" method="post">
<input type="hidden" name="model" />
<a href="javascript:void(0)" onclick="postBack('ford')">Ford</a>
<a href="javascript:void(0)" onclick="postBack('toyota')">Toyota</a>
</form>
答案 1 :(得分:1)
您只需要在hidden input
元素之外添加一个a
。它将根据submit()
之前点击的元素获得其值。所以你的表格看起来像这样:
<form id="cars" action="file.php" method="post">
<a href="#" onclick="submitModel('ford')">Ford</a>
<a href="#" onclick="submitModel('toyota')">Toyota</a>
<input id="hiddenModel" type="hidden" name="model" value="ford" />
</form>
你的javascript:
function submitModel(mdl) {
document.getElementById('hiddenModel').value = mdl;
document.getElementById('cars').submit();
}