Javascript 使用onclick将变量传递到表单
我是javascript新手,尝试从简单的开始。是否可以创建一个包含表单对象的函数,该表单对象可以由onclick事件填充 现在我有一个有7个按钮的页面,每个按钮都是一个单独表单的提交,它们都链接到我网站背面处理它们的同一个php文件。我想以某种方式创建一个表单,可能是一个javascript函数,在单击时接受按钮中的变量,然后将表单提交给我的php脚本。从技术上讲,它的功能与现在一样,有7种不同的形式,每个按钮一个,但希望能减少代码 这个例子只是我从逻辑上认为它可能是如何工作的,从几周的时间里,我在互联网上搜索,从这里和那里收集信息,但事实上,它远没有发挥作用 例如:Javascript 使用onclick将变量传递到表单,javascript,forms,onclick,Javascript,Forms,Onclick,我是javascript新手,尝试从简单的开始。是否可以创建一个包含表单对象的函数,该表单对象可以由onclick事件填充 现在我有一个有7个按钮的页面,每个按钮都是一个单独表单的提交,它们都链接到我网站背面处理它们的同一个php文件。我想以某种方式创建一个表单,可能是一个javascript函数,在单击时接受按钮中的变量,然后将表单提交给我的php脚本。从技术上讲,它的功能与现在一样,有7种不同的形式,每个按钮一个,但希望能减少代码 这个例子只是我从逻辑上认为它可能是如何工作的,从几周的时间里
<script type="text/javascript">
function form_variables(opt1,opt2,opt3){
<form name='mySelectionForm' action='form.php?action=form_action' method='post' enctype='multipart/form-data'>
<input type='hidden' name='number' value='" + opt1 + "' />
<input type='hidden' name='id' value='" + opt2 + "' />
<input type='hidden' name='option' value='" + opt3 + "' id='options' />
</form>;
formObject.submit();
}
函数形式_变量(opt1、opt2、opt3){
;
formObject.submit();
}
然后,这将由类似这样的onclick事件填充
<a href="javascript: void(0);" onclick="form_variables('9','1','6');" title="submit_button1" value="Button 1" class="cssButton">My Selection</a>
只需将每个链接如下:
<a href="form.php?action=forum_action&id={ID}" class="cssButton">My Selection</a>
function postForm(number, id, option, action) {
var form = document.getElementById('mySelectionForm');
form.setAttribute('action', 'form.php?action=' + action);
document.getElementById('number').value = number;
document.getElementById('id').value = id;
document.getElementById('option').value = option;
form.submit();
}
用数字替换{ID}
然后在PHP文件中,使用:
<?php
switch($_GET['id']) {
case 1:
$var['number'] = 9;
$var['id'] = 1;
$var['option'] = 6;
break;
...
}
?>
每种情况都是如此。这是一个更好的系统,因为它可以使您的HTML保持整洁,并且不再需要JavaScript。不确定我是否完全理解您的意图。我认为,与其制作表单并在每次单击某个按钮时提交表单,不如使用以下方法:
<script type="text/javascript">
function form_variables(opt1,opt2,opt3){
window.location('form.php?action=form_action&number='+opt1+'&id='+opt2+'&option='+opt3);
}
</script>
函数形式_变量(opt1、opt2、opt3){
window.location('form.php?action=form_action&number='+opt1+'&id='+opt2+'&option='+opt3);
}
你的思路是对的。JavaScript可以填充隐藏输入的值并更改表单的操作,而不是每次动态生成表单。因此,在您的HTML中:
<form name="mySelectionForm" id="mySelectionForm" action="form.php?action=form_action" method="post" enctype="multipart/form-data">
<input type="hidden" name="number" value="" id="number" />
<input type="hidden" name="id" value="" id="id" />
<input type="hidden" name="option" value="" id="options" />
</form>
如果我理解正确,您有7个表单和7个按钮,并且希望使用脚本,以便在提交其中一个表单时,将值复制到另一个表单,然后提交该表单。我不认为这会“减少代码” 在我看来,这似乎增加了代码量——表单根本不需要任何脚本。您可以只使用一个带有7个提交按钮的表单,然后根据单击的按钮在服务器上进行排序 编辑 如果使用具有多个提交按钮的单个表单,如:
<form action="form.php?action=form_action">
<input name="foo" value="bar">
<input type="submit" value="Submit 1" name="Submit 1">
<input type="submit" value="Submit 2" name="Submit 2">
</form>
单击第二个按钮时,将获得:
...?foo=bar&Submit+1=Submit+1
...?foo=bar&Submit+2=Submit+2
所以:一个表单,多个提交按钮,没有脚本,服务器知道点击了哪个
当然,您可能希望使用脚本来增强UI,但底层功能不需要脚本。我不建议这样做。像表单帖子这样的东西不应该被HTTP
GET
操作所取代。为什么不呢?更改表单值和更改GET变量一样容易。如果页面上有一堆链接,爬虫会跟随这些链接并产生副作用。你不应该引入导致副作用的GET
操作。什么是“副作用”?来宾用户不应该造成任何负面的副作用。我知道一个人试图起诉一家搜索引擎,因为他们的机器人跟踪了该人在其网站上的所有“删除”链接,但除此之外…GET
s也可以缓存,破坏了使用它们触发操作的实用性。使用GET
获取,使用POST
发布。为什么要使用链接作为按钮?只需使用一个按钮。正如我最初的帖子所说,我只是在学习,我仍然在学习基础知识,并试图在网络阅读的基础上做到这一点。我想做的是有7个按钮,将变量发布到一个表单,然后自动提交。这样我就不会有七种不同的形式。它们都发布到同一个php文件中,然后处理数据。我不确定我是否需要变量操作,因为我总是将数据发布到同一个文件中。我的onclick事件还会以同样的方式使用吗?是的,如果您不需要将操作变为变量,那就很好了。这完成了我试图做的,一个简洁的解决方案。我也一直在尝试附加这个。我的两个原始表单有第四个变量,它是从带有7个选项的下拉列表中选择的。我一直在尝试使用document.getElementId('droplist').value=option将第四个变量添加到表单中;但它不起作用。我想我遗漏了一个部分,也许我需要选择下拉列表,然后用另一个命令获取它的值?更复杂的是,我可能需要一个参数,如果没有droplist,那么第四个值将变为null,并且没有提交?