Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   метод post jquery (https://javascript.ru/forum/jquery/55354-metod-post-jquery.html)

makklovskiy 24.04.2015 09:56

метод post jquery
 
$(document).on("click", "#searchgame", function(event){
	$.post("/index.php?option=com_ajax&module=AjaxTest&format=json&task=cards", { game: $( "#namegame" ).val() },
			function(data){
				$( "#tradecards" ).html( data );
				alert(data);
			});
	});

Когда на сервере пишу:
echo 111;

Работает отлично
Когда на сервере меняю на код на sql запрос, то в фаер баге возвращает всё нормально, но результат не выводиться в $( "#tradecards" ).html( data );
В чём ошибка?

ksa 24.04.2015 09:58

Цитата:

Сообщение от makklovskiy
результат не выводиться в
$( "#tradecards" ).html( data );

alert что показывает?

makklovskiy 24.04.2015 10:00

вообще не работает, когда пишу sql запрос на сервере, а когда echo 111; выводит "111"

laimas 24.04.2015 10:26

Запрос еще не ответ, значит не возвращается результат запроса.

ksa 24.04.2015 10:32

Цитата:

Сообщение от makklovskiy
вообще не работает, когда пишу sql запрос на сервере, а когда echo 111; выводит "111"

Т.е. алерта нет?

Для проверки, просто в браузере набери тот УРЛ с параметрами - что покажет на страничке?

makklovskiy 24.04.2015 10:33

заметил такую особенность если в файле на сервере писать цифры, всё норм.
Если буквы (даже латинские) не чего не работает, даже alert не вызывается

makklovskiy 24.04.2015 10:36

ответ с сервера такой
1234123412341234123412341234123412341234123412341234123412341234123412341234123412341234123412341234
1234123412341234123412341234123412341234123412341234123412341234123412341234123412341234123412341234
1234123412341234123412341234123412341234123412341234123412341234123412341234123412341234123412341234
1234123412341234123412341234123412341234123412341234123412341234123412341234123412341234123412341234


отображается в
$( "#tradecards" ).html( data );
нормально

а такой :

sadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsada
sdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsa
dasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasd
sadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsada
sdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsa
dasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasdsadasd

не отображается, и алерт не вызывается

laimas 24.04.2015 10:38

У вас проблемы на сервере, клиент тут не причем.

ksa 24.04.2015 10:41

Цитата:

Сообщение от makklovskiy
Если буквы (даже латинские) не чего не работает, даже alert не вызывается

Поставь alert выше

$(document).on("click", "#searchgame", function(event){
	$.post("/index.php?option=com_ajax&module=AjaxTest&format=json&task=cards", { game: $( "#namegame" ).val() },
			function(data){
				alert(data);
				$( "#tradecards" ).html( data );
			});
	});
});


Будет показывать ответ сервера?

makklovskiy 24.04.2015 10:46

ksa,
может js библиотека корявая?
function getXmlHttp() {
							var xmlhttp;
							try {
							  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
							} catch (e) {
							try {
							  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
							} catch (E) {
							  xmlhttp = false;
							}
							}
							if (!xmlhttp && typeof XMLHttpRequest!="undefined") {
							  xmlhttp = new XMLHttpRequest();
							}
							return xmlhttp;
						  }
							var xmlhttp = getXmlHttp(); 
							xmlhttp.open("POST", "/index.php?option=com_ajax&module=AjaxTest&format=json&task=cards", true);
							xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
							xmlhttp.send("game="  + encodeURIComponent(document.getElementById("namegame").value));
							xmlhttp.onreadystatechange = function() { 
								if(xmlhttp.status == 200) { 
								  document.getElementById("tradecards").innerHTML = xmlhttp.responseText; 
								}
							}

такой кот работает исправно

makklovskiy 24.04.2015 10:47

поставил алерт выше, не чего

laimas 24.04.2015 11:48

Лучше бы показали как на сервер обрабатывается запрос и возвращаются данные. Нет проблем с отправкой данных методами jQ, как не будет их используя XMLHttpRequest. А вот условия отправки/обработки/ответа, это может сыграть роль.

makklovskiy 24.04.2015 12:11

я писал что на сервере код такой
echo 111;
- всё работает
когда меняю на
echo 'aaa';
не работает.
Больше на сервере не чего нет.

laimas 24.04.2015 12:24

Заключим пари на литр армянского коньяка, что этот код:
<?
header('Content-type: text/html; charset=utf-8');
if($_POST) exit('111 aaa');
?>
<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(function() {
    $('button').click(function(){
        $.post(location, {p: 1}, function(d){
             alert(d)
        })
    })
})
</script>     
</head> 
<body>
<button>GO</button>
</body> 
</html>

выполненный на вашем сервере вернет строку "111 English Русский"?
Если же вернет "111", значит очень странные проблемы с сервером вашим.
header('Content-type: text/html; charset=utf-8'); на случай если ваш сервер не передает этот заголовок сам.
jQuery взята последняя из поддерживающих IE8.

Проверяйте.

makklovskiy 24.04.2015 14:45

Заголовок charset=utf-8 в .htaccess прописан
111 English Русский - вообще не работает(я сейчас не про ваш код конкретный, а про вставку его в мой)
jQuery да последний, может его на более старый сменить?

laimas 24.04.2015 14:49

Не нужно в ваш вставлять, а исполните именно код приведенный, как отдельный файл. Результат?

ksa 27.04.2015 09:47

Цитата:

Сообщение от makklovskiy
поставил алерт выше, не чего

Значит ошибка на сервере или ошибка при передаче...

makklovskiy 27.04.2015 14:46

проблема была в библиотеке jQuery (хотя качал с гугла), сменил на более позднюю, всё работает отлично.


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