2016-10-27 2 views
1

Я пытаюсь добавить как вариант к элементу, отображаемому на странице.Добавление как элемент без рендеринга новой страницы в php

Так поток работы выглядит следующим образом:

  1. ввода пользователя данные в форму на URL
  2. Результаты поиска всплывал
  3. Как это или нет

я сделал следующий вариант :

<a href="like.php?type=gifLike&id=<?php echo $item->getId();?>">like</a> 

и в like.php

header('Location:gifs.php'); 

, но затем, после или выписки как из-за эту акцию предыдущих результатов поиска пропали без вести, так что я получаю пустую ошибку страницы/уведомления, потому что мои предыдущие входные данные от пользователей исчезли.

Есть ли возможность добавить это как и вид пребывания на той же странице?

ok Я только понял, что результаты поиска генерируются как «случайная» база данных, поэтому мне кажется, что я должен использовать javascript здесь.

+1

звучит как ajax. –

+0

Сделайте кнопку «как» кнопкой отправки и передайте данные через форму. Затем, когда вы вернетесь на страницу, выделите данные $ _POST в соответствующие поля. Это называется «липкой» страницей ... см. Http://www.peachpit.com/articles/article.aspx?p=483799&seqNum=7 – Sablefoste

ответ

1

Если вы хотите сделать запрос серверу, но сохраните его на той же странице, вы должны использовать JavaScript для выполнения запросов POST.

Если вы используете JQuery, то это что-то вроде этого:

<head> 
    <!-- add jQuery --> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
</head> 

<!-- ... --> 

<!-- adding class "like" so we can easily find all elements --> 
<a href="like.php?type=gifLike&id=<?php echo $item->getId();?>" class="like">like</a> 
<!-- repeat more a href... --> 


<script> 
    // $(function(){... executes after document load (DOM is ready) 
    $(function(){ 
     // add "onclick" event listener to all "a" with class "like" 
     $('a.like').on('click', function() { 
      // $(this) - the element which was clicked 
      // take its attribute "href" 
      var url = $(this).attr('href'); 

      // use POST, not GET so browser and proxies will not cache it 
      $.post(url, {}, function(result) { 
       alert('You have liked it!'); 
       console.log(result); // you can get response from server 
      }); 

      // stop going to link URL in browser 
      return false; 
     }); 
    }); 
</script> 
+0

tbh Я зеленый в JS, и это выглядит как китайский для меня – filemonczyk

+0

Добавлены комментарии. Надеюсь, это поможет, потому что вы не можете сделать это в чистом PHP. – luchaninov

+0

Возможно ли запустить скрипты php в одно и то же время? – filemonczyk

0

Не самый лучший вариант, на мой взгляд, но если вы хотите остаться с PHP только вы можете отправить необходимые данные обратно на страницу с header('Location:gifs.php?data=' . $yourdata);

Смежные вопросы