【问题标题】:Second form on page is using first form's action attribute页面上的第二个表单正在使用第一个表单的 action 属性
【发布时间】:2014-07-08 03:14:53
【问题描述】:

我有一个页面有两个表单,第二个表单使用第一个表单的 action 属性。代码:

<!-- mountain sites -->
<form name="form" action="shopsite.php" method="post" id="form">

<!-- sites pass alt tag to shopsite.php -->
<ul id="sites">
<tr>
<li><td class="" id="Hyland"><div><img id="imgHyland" onclick="this.src='radiotower.jpg';clearAck('Hyland');" src="radiotower.jpg" alt="Hyland" class="location" /><br/>Hyland</div></td></li>

</ul>
<div><input type="hidden" name="sitename" id="sitename" value="" /></div>
</form><!-- end first form -->


<!-- non-mountain sites -->
<form name="form-nm" action="shopsite-nm.php" method="post" id="form-nm">

<!-- sites pass alt tag to shopsite-nm.php -->
<ul id="sites">
<li><td class="" id="KMS"><div><img id="imgKMS" onclick="this.src='radiotower.jpg';clearAck('KMS');" src="radiotower.jpg" alt="KMS" class="location" /><br/>KMS</div></td></li>
</tr>
<div><input type="hidden" name="sitename" id="sitename" value="" /></div>
</form><!-- end second form -->

当我单击任一表单上的输入(输入是 li 标签)时,它会转到 shopsite.php。第二种形式的输入应该转到 shopsite-nm.php。我研究了在一个页面上使用多个表单来调用不同的 php 页面,据推测这是可能的,尽管我发现的示例没有使用隐藏输入。我不确定这是否是问题所在。

提前感谢您的帮助:)

编辑:站点名称从两种形式都正确传递。

编辑 2:如果有更好的方法来构建它,我愿意接受建议。这个想法是每个表单都显示一个站点列表及其状态,当用户点击一个站点时,他们会看到一个页面,其中包含有关该特定站点的更详细信息。最初只有一个表格包含所有网站,但最近添加了需要不同信息显示的新网站,这就是我现在尝试在第二个表格中提供的内容。

【问题讨论】:

  • 顺便说一句:您的第二次编辑是一个聪明的补充——这种信息有助于避免XY Problem
  • clearAck() 是做什么的?这是提交表格吗?旁注:您可以使用提交按钮并使用属性form="your_form_id",它设置应提交的表单,&lt;input type="submit" name="submit" form="form-nm" /&gt;
  • clearAck() 不提交表单;它设置了一个位,表示用户已确认先前存在的问题,因此它不会继续显示错误消息。我不使用提交按钮的原因是每个 li 显示一个图像(src 参数)并且用户点击它,所以图像是按钮。显示屏将在大屏幕上远距离观看,因此鼓励更大的输入,因为按钮将难以阅读。
  • 您有多个具有相同 id 的元素(例如,sitessitename 等)这很糟糕——id 必须是唯一的。

标签: php html forms


【解决方案1】:

你可以在这里使用 JQuery 吗?

$(document).ready(function() {
    $('#Hyland').click(function(e) {
        $.ajax({
            url: 'shopsite.php',
            type: 'POST',
            data: $('#form').serialize(),
            success: function(res) {
                //Do Something here
                console.log(res);
            },
            error: function(error) {
                //Do Something here
                console.log(res);
            }
        });
    });
});

【讨论】:

    猜你喜欢
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多