2013-11-04 43 views
0

我以前从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 

回答

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(); 
2

$_POST['userid'];未设置错误和不在这种情况下使用var,存在POST阵列没有这样的变量userid。您可以使用:

if(isset($_POST['userid'])){ 
    $x=$_POST['userid']; 
} 
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(); 
2

删除var从PHP

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

你定义var $form,但然后调用它只是form - 你需要一个一致的变量名。顺便说一句,$form有点令人困惑,并可能导致调试问题;为了清晰起见,请尝试诸如objForm之类的内容。

另外,像其他人指出的那样,从您的PHP中删除var并使用isset()

+0

Ed:'var' for typo – user123

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