使用隐藏表单发布数据

时间:2013-11-04 06:52:11

标签: php ajax

我以前得到过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();

start.php

<?php
 $x=$_POST['userid'];
?>

这里有什么问题?

它在start.php

上出错
Notice: Undefined index: userid in /opt/lampp/htdocs/testCase2/start.php on line 2

6 个答案:

答案 0 :(得分:2)

未设置

$_POST['userid'];,在这种情况下不使用varuserid数组中没有此类变量POST。您可以使用:

if( isset( $_POST['userid'] ) ){
    $x=$_POST['userid'];
}

答案 1 :(得分:2)

从php

中删除var
<?php
  $x=$_POST['userid'];
?>

答案 2 :(得分:1)

只需访问

即可
<?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();

答案 3 :(得分:1)

您定义var $form,但后来只调用form - 您需要一致的变量名称。顺便说一句,$form有点混乱,可能会导致调试问题;为了清楚起见,请尝试objForm之类的内容。

此外,正如其他人所指出的那样,从您的PHP中删除var并使用isset()

答案 4 :(得分:1)

您可以尝试使用此方法,在表单标记内移动隐藏的输入。

     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'];
   }
 ?>

答案 5 :(得分:1)

在您的代码中,您使用$ 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();