2012-09-01 31 views
1

我有非常簡單的形式(文件名爲message.php):Facebook iframe - 如何發送表單(POST方法)?

<?php 
    print_r($_POST); 
?> 
<form method="post" target="_top" action="<?php echo CANVAS_URL;?>message.php"> 
    <input type="text" name="your_name" /> 
    <input type="hidden" name="signed_request" value="<?php echo $_REQUEST['signed_request'];?>" /> 
    <input type="submit" name="send" /> 
</form> 

我發現這個問題的一個解決方案 - 投入的形式隱藏輸入與signed_request - 我做到了,但不幸的是我仍然面臨這個問題 - 我無法檢索發送的POST數據。

如果我將方法更改爲method="get",一切正常,但我需要POST的數據。

任何人都可以幫助我,如何解決這個問題?謝謝!

回答

2

試試這個。我不相信你需要在FB canvas aps中使用target。另外一個表單ID會很好。

<form method="POST" id="my_form" action="message.php"> 
    <input type="text" name="your_name" /> 
    <input type="hidden" value="<?php print $_POST["signed_request"] ?>" name="signed_request" /> 
    <input type="submit" name="submit" /> 
</form> 
+0

感謝您的回覆,但不幸的是,這並沒有幫助我。仍然無法從$ _POST – user984621

+0

嗯檢索數據。唯一不同的是我沒有在文件名前使用'<?php echo CANVAS_URL;?>'。如果這段代碼在message.php中,那麼它爲什麼需要在那裏?咆哮,也許你可以發佈更多的代碼或鏈接到一個現場示例? – ow3n

1

發佈到畫布網址(如在http://apps.facebook.com/namespace中)完全不受支持。 但爲什麼發佈到頂部窗口而不是簡單地呆在iframe中?它更好,因爲它不需要重新加載整個頁面,只需要iframe。