2013-05-09 2 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 –

0

Вы должны поместить код для размещения на стене внутри translate.php так, что страница, перечисленные в форме действия. Когда форма будет отправлена, значения будут переданы как параметры для translate.php, тогда вы можете использовать $ _GET для их извлечения и выполнения кода, который записывается на стену.

+0

Извините, я должен был упомянуть, этот код находится внутри translate.php. Мне нужно, чтобы PHP-код выполнялся только при нажатии кнопки отправки. после того, как я это выясню, я могу сосредоточиться на оставшихся моих проблемах. Спасибо –

+0

Ну, вы можете добавить

в свою форму, а затем проверить, есть ли $ _GET ['isSubmitted'] == 'true', и если да, тогда вы знаете, что кнопка отправки формы была нажата, и данные отправляются. –

0

Я думаю, ваша проблема в том, что ваш браузер пересылает данные каждый раз, когда страница перезагружается.

Есть 2 подхода:

  • Перенаправления пользователя на ту же страницу, так отправлены данные будут удалены (header("Location: asd"))

  • магазина некоторого хэш в сессии, сделать скрытый вход и проверьте, хэш прав. Измените хэш, когда форма будет правильно отправлена.

+0

не уверен, что это значит, если честно. Код выше - моя страница translate.php. До этого пользователь использует мой index.php, а введенные данные отправляются с помощью POST в translate.php. текстовое поле используется для отображения данных после его изменения, и пользователь может нажать «отправить», чтобы данные были отправлены на их стену. –