我以前从SO那里得到了一些帮助。但是这里有一些问题。
var userid="12";
var $form = $("<form id='form1' method='post' action='start.php'></form>");
form.append('<input type="hidden" name="userid" value="'+userid+'" />');
$('body').append($form);
window.form1.submit();
开始.php
<?php
$x=$_POST['userid'];
?>
这里有什么问题?
它在启动时出错.php
Notice: Undefined index: userid in /opt/lampp/htdocs/testCase2/start.php on line 2
$_POST['userid'];
没有设置,在这种情况下不使用var
,POST
数组中没有这样的变量userid
。您可以使用:
if( isset( $_POST['userid'] ) ){
$x=$_POST['userid'];
}
从 php 中删除var
<?php
$x=$_POST['userid'];
?>
在您的代码中,您将$form用作变量,但在追加中仅使用 form.append。 请将其更改为$form.append。请检查下面的代码。希望它应该有效。
var userid="12";
var $form = $("<form id='form1' method='post' action='start.php'></form>");
$form.append('<input type="hidden" name="userid" value="'+userid+'" />');
$('body').append($form);
window.form1.submit();
只需将其作为
<?php
$x=$_POST['userid'];
?>
而不是var $x;
你的<form>
应该是这样的
var userid="12";
var $form = $("<form id='form1' method='post' action='start.php'>");
form.append('<input type="hidden" name="userid" value="'+userid+'" /></form>');
$('body').append($form);
window.form1.submit();
你定义了var $form
,但随后只称它为form
- 你需要一个一致的变量名。 顺便说一下,$form
有点混乱,可能会导致调试问题;为了清楚起见,请尝试类似objForm
。
另外,从 PHP 中删除var
并使用 isset()
,正如其他人指出的那样。
您可以尝试此方法,在表单标签内移动隐藏的输入。
var $form = $("<form id='form1' method='post' action='start.php'><input type='hidden' name='userid' value='"+userid+"' /></form>");
$('body').append($form);
window.form1.submit();
<?php
if(isset($_POST['userid'])){
$x=$_POST['userid'];
}
?>