我正在尝试使用javascript自动发布数据并将其检索到PHP文件中,但是PHP文件未检索到数据。
我创建了一个自动表单,该表单从另一个表单接收其输入并将其自动发送到另一个PHP文件。但是下一个文件pics.php无法接收数据。我只张贴了代码的相关部分。首先是HTML / javascript代码。
<html>
<script type="text/javascript">
function submit()
{ document.getElementById("auto").click();
document.auto.submit();
}
</script>
<body onload="submit()">
<form name="auto" id="auto" action="pics.php" method="post">
<input type="hidden" name= "prodnm" value="<?php echo
$prodnm; ?>" /><br/>
<input type="hidden" name= "eigid" value="<?php echo $eigid;
?>" /><br/>
</form>
</body>
</html>
这是pics.php文件中PHP代码的一部分
<?php
require_once 'connect.php';
$prodnm = $_POST['prodnm'];
$eigid = $_POST['eigid'];
echo $prodnm;
echo $eigid;
?>
非常感谢您的帮助。我已经连续两天了。
答案 0 :(得分:0)
恐怕不建议使用这种方法。
该表单似乎没有从其他表单中获取您说的值(无论是谁?)。
为什么不使用带有提交按钮的单个表单。
为输入字段定义默认值(根据需要,可以选择显示和隐藏)。
然后使用JavaScript代码自动提交页面加载时的默认值。
答案 1 :(得分:0)
看着上面的代码,我看不到为什么您不能通过ajax请求发送数据,而不是尝试填充表单然后以某种方式触发Submit方法...也许以下方面对此很感兴趣。
/* replace the inline submit handler with a remote listener */
document.addEventListener('DOMContentLoaded', ()=>{
/* a very basic ajax function to send a POST request */
const ajax=function( url, params, callback ){
let xhr=new XMLHttpRequest();
xhr.onload=function(){
if( this.status==200 && this.readyState==4 )callback( this.response )
};
xhr.open( 'POST', url, true );
xhr.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
xhr.send( params );
};
/* for convenience, declare PHP variables as Javascript variables */
<?php
printf("
let prodnm='%s';
let eigid='%s';\n",
$prodnm,
$eigid
);
?>
/* Make the POST request to pics.php */
ajax( 'pics.php', 'prodnm='+prodnm+'&eigid='+eigid, r=>{
alert("Do something with result?\n\nResponse: "+r+"\n\nReload? Modify DOM?")
});
});
由于数据在PHP上正试图发布表单时存在,并且由于没有预期的人机交互,因此您可以使用curl(或类似方法)来消除对该页面的需要。