基本上,我试图通过POST将一些数据发送到远程PHP页面,其中包含4个静态参数和一个随机参数,一个数字。 到目前为止,我所做的是创建一个HTML页面,其中包含4个隐藏字段和1个空字段的表单,其中通过Javascript(使用Math.random)插入随机数作为值。现在,每当我提交此表单时,它都会将我带到远程PHP页面,因此我必须再次单击(在浏览器中)然后提交。
所以,我决定在另一个HTML页面的iFrame中加载这个表单,所以在点击提交后,我可以点击刷新,然后再次提交。
我想知道,有没有办法可以在父HTML中使用Javascript在iFrame中自动提交表单,然后创建一个新的随机值并再次提交?
到目前为止,这是我的代码
a.html
<html>
<body>
<form method="post" action="http://awebsite.com/remotefile.php">
*some hidden fields with the static values*
<input type="text" id="mytext" name="mobile_no">
<input type="submit">
</form>
<script>//don't remember the exact code, use javascript to generate a random number which is put in the value for mytext via getElementById</script>
</body>
</html>
现在这是手动将数据发送到服务器的形式
这是加载iframe: b.html
<html>
<body>
<iframe src="a.html">
</body>
</html>
我可以在b.html中使用javascript多次重新发送表单,但每次都有不同的mobile_no值吗? 或者我可以通过简单的Javascript(或PHP)
简单地将带有参数的POST数据发送到服务器答案 0 :(得分:1)
您的问题不是100%明确,但听起来您想要异步发布表单数据。您可以使用jQuery之类的JavaScript库轻松完成此操作,而无需使用iframe。首先,您应该为表单添加ID属性,以便更容易在jQuery代码中引用。然后,您可以将事件监听器附加到表单的提交事件,您可以在提交之前自定义表单并处理响应
$('#myForm').submit(function(e) {
// prevent default form submit action from occuring
e.preventDefault();
// load values need to make AJAX request
var method = $(this).attr('method');
var action = $(this).attr('action');
// Process Ajax request
$.ajax({
type: method,
url: action,
dataType: 'html',
data: $(this).serialize(),
beforeSend: function() {
// generate and assign per form submit random number
// show loading gif
},
success: function(response) {
// AJAX POST success, insert the HTML response into the DOM
},
error: function(jqXHR, textStatus, errorThrown) {
// console.log any errors for debugging here
},
complete: function() {
// Post completion tasks, such as hide loading gif
}
});
});