2013-11-04 64 views
0

我被重定向到新的页面start.php和传递变量是这样的:后没有表单提交和GET

window.location.href = 'start.php?&userid= +用户ID;`

我可以做这样:

$.post('start.php',{userid: userid}); 
window.location.href = 'start.php'; 

我不想使用GET和表单提交。

因为在同一页面上有其他进程已经将数据发布到其他页面。

我上面的测试,但在start.php它说VAR没有定义

UPDATE

start.php

<?php 
    $user_id=$_GET['userid']; //When I use GET 
?> 

<?php 
    $user_id=$_POST['userid']; //When I use POST 
?> 

的login.php

<html> 
    <head> 
     <title>ThenWat</title> 
     <link href="css/button.css" rel="stylesheet" type="text/css"> 
     <link href="css/rateit.css" rel="stylesheet" type="text/css"> 
     <script src="//connect.facebook.net/en_US/all.js"></script> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
     <script src="js/jquery.rateit.js" type="text/javascript"></script>   
     <style> 
      .header{ 
       background-color:#0B6121; 
       border:2px solid #0B6121; 
       padding:10px 40px; 
       border-radius:5px; 
      } 

      .middle{ 
       background-color:Yellow; 
      } 

      .left{ 
       background-color:Green; 
      } 
      .url{ 
       box-sizing: border-box; 
       display: block; 
      } 
      .url:hover { 
       box-shadow: 2px 2px 5px rgba(0,0,0,.2); 
      } 

      html, body { margin: 0; padding: 0; border: 0 } 
     </style> 
    </head> 

    <body> 
     <div class="header" style=""> 
      <table style=""> 
       <tr> 
        <td><img src= "3.png" height="50" width="310"/></td> 
       </tr> 
      </table>      
     </div>  
      <table border="0" width="100%"> 
       <tr> 
        <div class="middle"> 
         <td style="width:40%"> 
         <input type="button" id="loginButton" class="button" onclick="authUser();" value="Login | ThanWat" style="display:none; left:500px; position:relative"/> 
          <lable id="lable1" style="display:none;" ><i> Please wait .. </i> </lable>      
         <div class="rateit bigstars" id="rateit99" data-rateit-starwidth="32" data-rateit-starheight="32" style=" position:relative; top:-30px; display:none; left:300px" > 
          </div> 
         </td>    
        </div> 
       </tr>    
      </table> 
     <div id="fb-root"></div> 
     <script type="text/javascript"> 
      var userid; 
      FB.init({ 
      appId: '1412066', 
      xfbml: true, 
      status: true, 
      cookie: true, 
      }); 
      FB.getLoginStatus(checkLoginStatus); 
      function authUser() 
      { 
       FB.login(checkLoginStatus, {scope:'email'}); 
      } 
      function checkLoginStatus(response) 
      {    
       document.getElementById('lable1').style.display = 'block'; 
       if(response && response.status == 'connected') 
       { 
       FB.api('/me?fields=movies,email,name', function(mydata) 
       {     
        console.log(mydata.email); 
        console.log(mydata.id); 
        userid=mydata.id; 
        var name=mydata.name; 
        //alert(name); 
        var email=mydata.email; 
        var json = JSON.stringify(mydata.movies.data); 
        var a = JSON.parse(json); 
        var picture="https://graph.facebook.com/"+userid+"/picture?type=small"; 
        // alert(picture); 
        $.post('user_record.php',{'myd':a, name: name, email: email, userid:userid, picture:picture}, function(data) 
        { 
         window.location.href = 'start.php?userid='+userid; 

        }); 
       }); 

       console.log('Access Token: ' + response.authResponse.accessToken); 
       } 
       else 
       { 
        document.getElementById('lable1').style.display = 'none'; 
        document.getElementById('loginButton').style.display = 'block'; 
       } 
      } 
     </script> 

    </body> 

</html> 

UPDATE2

$.post('user_record.php',{'myd':a, name: name, email: email, userid:userid, picture:picture}, function(data) 
        {      
         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 
    $user_id=$_POST['userid']; 
    echo $user_id; 
?> 
+0

你的'start.php'页面上的代码是什么?请将其添加到问题中。 – josh

+0

你可以放置一个隐藏的表单元素(如果需要,可以通过JS更改它),然后通过邮件提交表单 - 然后您可以通过PHP中的POST干净地访问它。 – Fluffeh

+0

当你要做window.location.href时,它绝对不会把post变量带到下一页。如果你不想要甚至$ .ajax,那么session是一个解决方案。 –

回答

1

这里是为我工作的解决方案。你需要在第一个Ajax响应之后使用jquery添加一个新表单,然后使用javascript提交这个表单。

<script> 

$.post('user_record.php',{'myd':a, name: name, email: email, userid:userid, picture:picture}, function(data){ 
    var $form = $("<form id='form1' method='post' action='start.php'></form>"); 
    $form.append('<input type="hidden" name="userid" value="'+data+'" />'); 
    $('body').append($form); 
    window.form1.submit(); 
}); 

</script> 

请根据您的要求进行修改。希望这可以帮助

+0

jazakallah,我使用了相同的代码段,将'data'改为'userid'和'<?php \t $ user_id = $ _ POST ['userid']; \t echo $ user_id; ?>'at start.php – user123

+0

但是它说start.php上的undefine索引用户标识 – user123

+0

我觉得忘了一件事。以新形式添加method ='post'。我更新了答案。 $(“

”); –