2013-11-04 45 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']; 
    } 
?>