使用隐藏表单发布数据


Posting data using hidden form

我以前从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']; 没有设置,在这种情况下不使用varPOST数组中没有这样的变量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'];
   }
 ?>