Вход

Просмотр полной версии : метод post jquery


makklovskiy
24.04.2015, 09:56
$(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
результат не выводиться в $( "#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
вообще не работает, когда пишу sql запрос на сервере, а когда echo 111; выводит "111"
Т.е. алерта нет?

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

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

makklovskiy
24.04.2015, 10:36
ответ с сервера такой 12341234123412341234123412341234123412341234123412 34123412341234123412341234123412341234123412341234
12341234123412341234123412341234123412341234123412 34123412341234123412341234123412341234123412341234
12341234123412341234123412341234123412341234123412 34123412341234123412341234123412341234123412341234
12341234123412341234123412341234123412341234123412 34123412341234123412341234123412341234123412341234

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

а такой :

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

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

ksa
24.04.2015, 10:41
Если буквы (даже латинские) не чего не работает, даже 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
27.04.2015, 14:46
проблема была в библиотеке jQuery (хотя качал с гугла), сменил на более позднюю, всё работает отлично.