锚元素内的输入元素

时间:2015-05-17 16:16:54

标签: javascript php html

我有一个这样的表格:

<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;。那有什么不对?

2 个答案:

答案 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();
}

jsfiddle DEMO