Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/37: Рейтинг темы: голосов - 37, средняя оценка - 4.70
2 / 2 / 0
Регистрация: 11.10.2012
Сообщений: 66
1

Отправка post запроса без перезагрузки страницы

05.09.2014, 21:16. Показов 7583. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
недавно задавал вопрос про отправку post запроса без перезагрузки страницы. Сказали ищи в интернете.
Ребята нужна реально ваша помощь.
Нашел пару вариантов но ни один не работает вот делал по этому примеру: http://blog.ox2.ru/php/ajax-form/
У меня такая задача.
Есть страница с голосованием в ней 2 формы, если пользователь проголосовал на одной из них то выводиться результат без обеих форм, тоесть формы исчезаю остаеться обновленный результат голосования. Подскажите как мне это сделать.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.09.2014, 21:16
Ответы с готовыми решениями:

Отправка GET запроса без перезагрузки страницы
Здравствуйте! Столкнулся с такой проблемой как отправка формы без перезагрузки страницы методом GET...

Метод POST/GET без перезагрузки страницы
В вк есть api, запрос выглядит так, как сделать так, чтобы по нажатию кнопки выполнялась отправка...

Отправка формы без перезагрузки страницы
Доброго времени всем. Тут такое возникло. в общем примерно так. На сайте форма которую нужно...

Отправка e-mail без перезагрузки страницы
Добрый день! помогите пожалуйста, уже какой день бьюсь не могу сделать! Что бы при отправке письма...

5
z-z
170 / 169 / 56
Регистрация: 22.06.2011
Сообщений: 980
05.09.2014, 21:24 2
Aleksde, а что конкретно у вас не работает? Хотите, чтобы формы исчезали? У метода $.ajax есть callback-функция, success. Она присутствует на примере по ссылке, которую вы же и дали. Так вот этот success запускается тогда, когда прилетел ответ от сервера и этот ответ не с ошибкой. Вот внутри этой функции и напишите кусок кода, который будет заставлять "исчезать" формы =)

Однако это только пока не перезагрузишь страницу. Чтобы при последующих заходах пользователь все равно не видел формы, нужно где то хранить данные о том, что человек с этого компьютера уже проголосовал. Например в куках или в localStorage
1
2 / 2 / 0
Регистрация: 11.10.2012
Сообщений: 66
05.09.2014, 21:54  [ТС] 3
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 <? if (chek_post($_SESSION['user'],$page_dat['title_url']) && isset($_SESSION['user']))
    {
    ?>
    <form id="1" method="post" action="index.php?viev=posts">
     <input type="hidden" name="2" value="<?=$page_dat['1']?>">
     <input type="hidden" name="user" value="<?=$_SESSION['user']?>">
     <input type="hidden" name="title_url" value="<?=$page_dat['title_url']?>">
               <input type="submit" name="2" value="Лайк"  >
</form>
 
</td>
    <td align="center" valign="top">
    '<?=$page_dat['2']?>' 
    </td>
    <td align="center" valign="top">
       <form id="1" method="post" action="index.php?viev=posts">
     <input type="hidden" name="1" value="<?=$page_dat['1']?>">
     <input type="hidden" name="user" value="<?=$_SESSION['user']?>">
     <input type="hidden" name="title_url" value="<?=$page_dat['title_url']?>">
               <input type="submit" name="1" value="1" >
</form>
    </td>
    <td align="center" valign="top">
    '<?=$page_dat['1']?>'
    </td>
     
    
   
</tr>
 
<?} 
else{
?>
    Лайков
</td>
    <td align="center" valign="top">
    '<?=$page_dat['2']?>' 
    </td>
    <td align="center" valign="top">
       Дизлайков
    </td>
    <td align="center" valign="top">
    '<?=$page_dat['1']?>'
    </td>
chek_post проверка если был произведен голос

Вот это все надор преаброзовать без перезагрузки страницы
0
1 / 1 / 1
Регистрация: 11.12.2012
Сообщений: 149
06.09.2014, 01:26 4
В HTML НЕ МОЖЕТ(!) быть элементов с одинаковым id. Никогда!!! Ваще ни в коем влучае!
Как сказали ранее надо повесить событие на обе формы по отправке которых выполняется ajax post запрос, в методе success которого прописана замена html-кода этих обоих форм. То есть
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function likeFormSubmit(form){
  $.ajax({
           type: "POST",
           url: form.attr('action'),
           data: form.serialize(), // serializes the form's elements.
           success: function(data)
           {
               $('#all-block').html(data) // Закидываем обе формы в DIV(иль ещё что) с 
               // id =  all-block и здесь заменяем содержимое этого дива тем, что получили от сервера.
           }
         });
}
$('#1').submit(function(e){ // Здесь будет ошибка потому что у тебя 2 формы с одинаковым ID.
    e.preventDefault();
    likeFormSubmit($(this));
})
0
2 / 2 / 0
Регистрация: 11.10.2012
Сообщений: 66
06.09.2014, 10:58  [ТС] 5
Это я понимаю. Просто опечатался. Я не понимаю суть как все это реализовать.
0
работяга
368 / 368 / 52
Регистрация: 23.05.2010
Сообщений: 947
06.09.2014, 14:06 6
Aleksde, создайте в корне сайта две странички (содержимое ниже) и разберите построчно, как работает код

demo.php
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<html>
<head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>
 
<div id="votes">
    <form class="vote" action="ajax_vote.php" method="post">
        <input type="text" name="text1" value="aaa" />
        <input type="text" name="text2" value="bbb" />
        <input type="submit" value="Лайк" />
    </form>
 
    <form class="vote" action="ajax_vote.php" method="get">
        <input type="text" name="text3" value="ccc" />
        <input type="text" name="text4" value="ddd" />
        <input type="submit" value="Лайк" />
    </form>
</div>
 
<script type="text/javascript">
$(function() {
 
    $('.vote').on('submit', function() {
 
        var method = $(this).attr('method');
        var action = $(this).attr('action');
        var vals = $(this).serialize();
 
        $.ajax({
            type: method,
            url: action,
            data: vals,
            success: function(data) {
                $('#votes').html('<pre>' + data + '</pre>');
            }
        });
 
        return false;
    });
 
});
</script>
 
</body>
</html>
ajax_vote.php
PHP
1
2
3
<?
print_r($_REQUEST);
?>
Это суть, без всякого мусора. Потом попробуйте то же самое сделать на своей страничке, если что-то не получается - выкладывайте код, задавайте конкретные вопросы.
1
06.09.2014, 14:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.09.2014, 14:06
Помогаю со студенческими работами здесь

Загрузка данных из другой страницы без перезагрузки основной страницы
Не знаю в правильной ли ветке я задаю вопрос. Ответьте пожалуйста как сделать чтобы при нажатии,...

Динамическая подмена контента страницы по клику на ссылку, без перезагрузки всей страницы
Здравствуйте! Честно говоря точно не знал какими средствами можно реализовать, то что мне нужно,...

Подмена контента страницы по клику на ссылку меню, без перезагрузки всей страницы
Доброго времени суток! у меня имеется два блока, один блок - меню иерархическое аккордеон на...

Post запрос без перезагрузки
Люди помогите мне пожалуйста с тяжелым случаем :facepalm:. Я уже перелазил весь интернет и находил...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru