i有一个情况,其中通过在容器第三页中相互结合,用HTML构建了两个不同来源的页面。每个部分还具有一个变量,它们使用帖子到单个PHP文件中通过表单。这些变量在每个执行中都会发生变化(当它们一起形成页面时(。
例如:
<!--Start of HTML 3 -->
<html>
<!-- Start of HTML 1 -->
<body>
<a href='process.php' id='php1' name='php1' onclick='document.getElementById("infoForm").submit()'> A link to php file that receives a hidden form's value</a>
<form id='infoForm' action='process.php' method='POST'>
<input name ="var1" id="var1" value="changing1" hidden />
</form>
<p>Stuff here</p>
<!-- End of HTML 1 -->
<!-- Start of HTML 2 -->
<p>Some more stuff here</p>
<form id='infoForm2' action='process.php' method='POST'>
<input name ="var2" id="var2" value="changing2" hidden />
</form>
</body>
<!-- End of HTML 2 -->
</html>
<!-- End of HTML 3 -->
更多细节:
表格彼此独立,加入它们将很困难,因为它们是使用与其他变量一起使用的先前过程创建的。
可以在HTML 1和2中添加代码,但不能添加3。
这个只能将var1发送到process.php(可以用$ _post调用(。如何使用基本技术(例如,不包括jQuery,ajax等(,如何使用单个链接将两个变量提交给单个PHP文件?有没有比不使用URI使用表单/帖子更好的方法?
编辑:我使用的方法是@glenn ferns第一点:使用表单属性将第二个属性连接到HTML化妆中的第一个表单:
<!-- Start of HTML 2 -->
<p>Some more stuff here</p>
<input form="infoForm" name ="var2" id="var2" value="changing2" hidden />
</body>
<!-- End of HTML 2 -->
我能想到的3种方法
- 在html2中的输入标签的表单属性。https://www.w3schools.com/tags/att_form.asp
- 如果不独立使用HTML1和HTML2,则可以在HTML1中打开表单并在HTML 2中关闭它您的IDE可能会丢失错误,但应该有效
- 使用JS获取值并从JavaScript
根据您的评论,您需要提交表格并将变量捕获在一起。这不适用两种表格,因为他们将提交两个不同的请求。由于HTTP是无状态协议,因此每个请求都将远离另一个请求。您可以使用会话来存储第一个请求中的一个值,并在第二个请求的处理中使用它。
另一个解决方案可以使用JavaScript通过AJAX请求发送您的变量。(我没有看到任何有效的用例不使用JavaScript(
您可能会从两种表单中对形式进行整理,并同时使用ajax和formdata objec发送。
function submitforms(){
var f2=document.getElementById('infoForm2');
var data=new FormData( document.getElementById('infoForm') );
for( i=0; i < f2.elements.length; i++ )data.append( f2.elements[i].name, f2.elements[i].value );
var xhr=new XMLHttpRequest();
xhr.onreadystatechange=function(){
if( this.status==200 && this.readyState==4 ){
alert(this.response)
}
};
xhr.open('POST','process.php',true);
xhr.send( data );
}