2013-05-09 109 views
0

我有一些代碼會發布到用戶牆上,但是,當它加載頁面時會發布,我只需要發佈帖子我的牆上按鈕被提交。只有當提交按鈕被按下時,纔會發生動作

這裏是我的代碼:

<div align="center"> 
<form method="GET" action="translate.php"> 
<textarea name="status2" cols="50" rows="5"<input type="text"/> 
<?php echo str_ireplace(array  ('old','awkward','all','again','behind','along','alright','hello','among','children','yes','child','kids','food','barnard castle','beer','book','blow','beautiful','bird','burst','brown','burn','boots'), 
array ('auld', 'aakwad', 'aall','agyen','ahint','alang','alreet','alreet','amang','bairns','aye','bairn','bairns','bait','barney','beor','beuk','blaa','bonny','bord','borst','broon','bourn','byeuts'),$status); ?> 

</textarea><br> 

<input type="submit" value="post to wall" 
// i did try my wall code here but it still posted on page load 
/> 
</form> 

</div> 

<?php 

$args = array(
    'message' => 'Hello World', 
    'link'  => 'http://apps.facebook.com/geordie-status/', 
    'caption' => 'Translate from English to Geordie' 
    ); 
$post_id = $facebook->api("/$uid/feed", "post", $args); 

?> 

回答

1

name屬性添加到您的input標記中。並使用isset來檢查用戶是否按下了提交按鈕。

 <input type="submit" value="post to wall" name="submit" 
     // i did try my wall code here but it still posted on page load 
     /> 
     </form> 

</div> 

    <?php  
     if (isset($_POST['submit'])){ 
     $args = array(
      'message' => 'Hello World', 
      'link'  => 'http://apps.facebook.com/geordie-status/', 
      'caption' => 'Translate from English to Geordie' 
      ); 
     $post_id = $facebook->api("/$uid/feed", "post", $args); 
     } 
     ?> 
+0

lmao,我只是想出了這一點,但改變了形式行動post.php,並基本上增加了上述,如果到post.php。不管怎樣,你仍然可以得到答案:D – 2013-05-09 21:10:39

0

你應該把代碼張貼到裏面translate.php牆,因爲這是在表單操作中列出的頁面。當表單被提交時,值將作爲參數傳遞給translate.php,然後您可以使用$ _GET來獲取它們並執行寫入到牆上的代碼。

+0

對不起,我應該提到,這段代碼是在translate.php裏面。我需要的是隻有在點擊提交按鈕時才執行的PHP代碼。在我弄清楚之後,我可以專注於我的其餘問題。謝謝 – 2013-05-09 20:09:35

+0

那麼你可以在表單中添加一個,然後檢查$ _GET ['isSubmitted'] =='true',如果是的話,那麼你知道表單提交按鈕被實際點擊並且數據被髮布。 – 2013-05-09 20:49:48

0

我認爲你的問題是你的瀏覽器每次頁面重新加載時都會重新發送數據。

有2種方法:

  • 重定向用戶到同一個頁面,這樣發送的數據將被清除(header("Location: asd")

  • 存儲一些散在會議上,做一個隱藏的輸入,並檢查是否散列是正確的。正確提交表單時更改散列。

+0

不確定這是什麼意思說實話。上面的代碼是我的translate.php頁面。在此之前,用戶使用我的index.php,並使用POST將輸入的數據發送到translate.php。 textarea用於在數據更改後顯示數據,用戶可以點擊「提交」,以便將數據發佈到牆上。 – 2013-05-09 20:14:14

相關問題