Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Проблемы с получение данных с сервера... (https://javascript.ru/forum/jquery/42109-problemy-s-poluchenie-dannykh-s-servera.html)

Kandiar 13.10.2013 10:05

Проблемы с получение данных с сервера...
 
Здравствуйте, проблема следующая:
Не получаю ответа от сервера когда вызываю $.post по событию. А когда сразу при загрузке странице вызываю $.post, данные с сервера успешно присылаются.
function x()
		{
			$.post('ajax.php', {
					prm1: 1
				}, function(data){
					alert(data);
				});
		}

<a href = "javascript:x()">Отправить данные на сервер</a>

AJAX.PHP
<?php
	if(isset($_POST['prm1']))
	{
		echo "Данные успешно отправлены!";
	}
?>

Из-за чего так?

Deff 13.10.2013 14:23

Цитата:

Сообщение от Kandiar
<a href = "javascript:x()">Отправить данные на сервер</a>

Замените на
<a href="#" onclick="x(); return false;">Отправить данные на сервер</a>


Переменную x - лучше удлинить для уникальности имени, к примеру x_ajax ()

Kandiar 13.10.2013 16:24

Цитата:

Сообщение от Deff (Сообщение 276201)
Замените на
<a href="#" onclick="x(); return false;">Отправить данные на сервер</a>


Переменную x - лучше удлинить для уникальности имени, к примеру x_ajax ()

Что href = "javascript:x()", что onclick = "x()" работает.
Тот пример, который я написал, он работает. Название функции такое потому, что это я написал здесь. Не хотел свой скрипт копировать сюда. (Канешно же я понимаю, что лучше называть осмыслено)
Проблема в другом. Если на ссылку вещать событие onclick, то работает, а вот если на <button> вещать нет(Данные на сервер посылаются, но ответ от сервера, JS не получает)
Когда <a href = "javascript:x()">Отправить данные на сервер</a> - работает
Когда <button onclick = "x()">">Кнопка</button> - НЕ РАБОТАЕТ

Deff 13.10.2013 16:28

<button type="button" onclick="alert('button click'); return false;">Отправить данные на сервер</button>

Kandiar 13.10.2013 16:32

Цитата:

Сообщение от Deff (Сообщение 276235)
<button type="button" onclick="alert('button click'); return false;">Отправить данные на сервер</button>

У меня не работает $.post через button. А alert и другие функции работают.
Когда я жму button, данные на сервак летят, но ответ JS не получает

Kandiar 13.10.2013 16:38

WTF Я сейчас с нуля написал в новом документе и все работает.

У меня вот так в скрипте
$(function(){
				$('.take_friendship').on('click', function(){
					$.post('ajax.php', {
						take_friendship: 1,
						user_id: $(this).attr('name')
					}, function(data){
						alert(data);
					});
				});
			});

<button class = "btn_z take_friendship" name = "<?=$user_id?>">Добавить в друзья</button>
Вот это не работает. В чем тут проблема?

Deff 13.10.2013 16:48

<script>
function  x_ajax (){
$.post('ajax.php', {
 prm1: 1
 }, function(data){
 alert(data);
});
}
</script>
<button type="button" onclick=" x_ajax ()">Отправить данные на сервер</button>

Deff 13.10.2013 16:50

Цитата:

Сообщение от Kandiar
В чем тут проблема?

$('.take_friendship').bind('click', function(){
$('.take_friendship').unbind('click');
 ....
}

Kandiar 13.10.2013 16:52

Цитата:

Сообщение от Deff (Сообщение 276240)
<script>
function  x_ajax (){
$.post('ajax.php', {
 prm1: 1
 }, function(data){
 alert(data);
});
}
</script>
<button type="button" onclick=" x_ajax ()">Отправить данные на сервер</button>

Это работает, я не понимаю почему прошлое не работает?

Kandiar 13.10.2013 16:55

Цитата:

Сообщение от Deff (Сообщение 276241)
$('.take_friendship').bind('click', function(){
$('.take_friendship').unbind('click');
 ....
}

Не, это не работает

Deff 13.10.2013 16:58

Цитата:

Сообщение от Kandiar
Это работает, я не понимаю почему прошлое не работает?

Кнопка существует сразу или подгружается ?
cтавьте событие следом за внедрением кнопки
Селектор кнопки прописан - верно ?
Проще не мудря поставить на кнопку id
<button id="x_ajax" type="button" onclick=" x_ajax ()">Отправить данные на сервер</button>

$('#x_ajax').bind('click', function(){
$('#x_ajax').unbind('click');
 ....
}

Kandiar 13.10.2013 16:58

Я сейчас тупо делаю так:
function x()
			{
				$.post('ajax.php', {
					take_friendship: 1
				}, function(data){
					alert(data);
				});
			}

<button onclick = "x()">Добавить в друзья</button>
И это не работает

Kandiar 13.10.2013 16:59

Цитата:

Сообщение от Deff (Сообщение 276246)
Кнопка существует сразу или подгружается ?
cтавьте событие следом за внедрением кнопки
Селектор кнопки прописан - верно ?

1)Существует сразу. 2)Верно
я просто там прописывал alert и он срабатывал

Deff 13.10.2013 17:05

Kandiar,
Поставьте длинную функцию x_ajax()
Ибо возможно использования переменной x в других частях скриптов

Kandiar 13.10.2013 17:06

Я только сейчас заметил, что я случайно влепил button в форму. Убрал теги <form></form> и все стало работать) Спасибо за все

Deff 13.10.2013 17:08

Цитата:

Сообщение от Kandiar
Я только сейчас заметил, что я случайно влепил button в форму.

Если есть
Цитата:

<button type="button" onclick="x_ajax()">Отправить данные на сервер</button>
Работает и в форме

Kandiar 13.10.2013 17:08

А почему скрипт перестал работать из-за тегов <form>? Это потому, что он подумал, что я без аякса буду данные на сервак отсылать?

Kandiar 13.10.2013 17:09

Цитата:

Сообщение от Deff (Сообщение 276252)
Если есть
<button type="button" onclick="x_ajax()">Отправить данные на сервер</button>

Работает и в форме

Не не было этого. Все теперь понятно

Deff 13.10.2013 17:10

Kandiar,
<button без атрибута type="button" воспринимается как субмит - кнопка

Kandiar 13.10.2013 17:14

Цитата:

Сообщение от Deff (Сообщение 276255)
Kandiar,
<button без атрибута type="button" воспринимается как субмит - кнопка

Век живи — век учись


Часовой пояс GMT +3, время: 09:45.