[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: не все работает при отправке ajax
Markus111
Здравствуйте.
Подскажите в чем дело, вот запрос
$.post(url+'/add/nacion', {id:id,title:title_nac},
function(data){
if(data=='net')alert('Вы ошиблись при вводе')

});


алертом вывожу data пишет net, но в моем скрипте должно выводить при этом Вы ошиблись при вводе, а не выводит ничего. Подскажите в чем дело



Спустя 28 минут, 3 секунды (14.09.2012 - 22:04) redreem написал(а):
что в консоли? возможно отсутствие ; после алерта - причина.

Спустя 9 минут, 47 секунд (14.09.2012 - 22:14) Markus111 написал(а):
вот контролер
public function nacion() {        

if ($_SERVER['REQUEST_METHOD'] == 'POST'){
if (isset($_POST['id']) && isset($_POST['title'])) {
$title=replace::replace($_POST['title']);
$id=replace::replace($_POST['id']);

$snm2=edit::titleNac($title,$id);

if($snm2==true){echo 'da';}else{echo 'net'; }

}
else{ echo 'net';}
}
else{ echo 'net';}

}

вот модуль
public static  function titleNac($n,$m) {
$db=db::getInstance();

//nacion title
$result="UPDATE nacion SET name='".$n."' where id='".$m."' ";
$snm7=$db->query($result);
return $snm7;

}

public static  function replace($id) {

$result = htmlspecialchars(mysql_escape_string(stripslashes(trim(strip_tags($id)))));
return $result;
}

Спустя 7 минут, 1 секунда (14.09.2012 - 22:21) redreem написал(а):
заголовок тоже надо бы отправлять.

Спустя 2 минуты, 55 секунд (14.09.2012 - 22:24) Markus111 написал(а):
Отправляю все
<?php

Class
addController Extends baseController {

public function index() {}

public function img() {
$infoimg = getimagesize($_FILES['nacion']['tmp_name']);
$file = basename($_FILES['nacion']['name']);
$date=date('Y-m-d G:i:s');
$date1=strtotime($date);
$img = "img/nacion/".$date1.$file;
$img1=$date1.$file;

$snm2=nacion::nacion('');
$myrow10=$snm2->fetch(PDO::FETCH_ASSOC);
if($myrow10==true){
if($infoimg[0]==30 && $infoimg[1]==15){
if(copy($_FILES['nacion']['tmp_name'], $img) ){
$snm1=edit::img($myrow10['id'],$img1);

$snm2=nacion::nacion($img1);
$myrow1=$snm2->fetch(PDO::FETCH_ASSOC);

if($snm1==true){echo $myrow1['id'].'|'.$myrow1['img'];}else{echo 'net'; }
}
}
else{echo 'net';}
}
else{
if($infoimg[0]==30 && $infoimg[1]==15){
if(copy($_FILES['nacion']['tmp_name'], $img) ){
$snm1=add::nacion($img1);

$snm2=nacion::nacion($img1);
$myrow=$snm2->fetch(PDO::FETCH_ASSOC);

if($snm1==true){echo $myrow['id'].'|'.$myrow['img'];}else{echo 'net'; }
}
}
else{echo 'net';}
}

}

public function nacion() {

if ($_SERVER['REQUEST_METHOD'] == 'POST'){
if (isset($_POST['id']) && isset($_POST['title'])) {
$title=replace::replace($_POST['title']);
$id=replace::replace($_POST['id']);

$snm2=edit::titleNac($title,$id);

if($snm2==true){echo 'da';}else{echo 'net'; }

}
else{ echo 'net';}
}
else{ echo 'net';}

}

}


?>

<?php

class
edit{
private function __construct() {
/*** maybe set the db name here later ***/
}
public static function img($id,$img) {
$db=db::getInstance();

//nacion
$result="UPDATE nacion SET img='".$img."' where id='".$id."' ";
$snm7=$db->query($result);
return $snm7;
}
public static function titleNac($n,$m) {
$db=db::getInstance();

//nacion title
$result="UPDATE nacion SET name='".$n."' where id='".$m."' ";
$snm7=$db->query($result);
return $snm7;

}
}


?>

<?php

class
replace{
private function __construct() {
/*** maybe set the db name here later ***/
}
public static function replace($id) {

$result = htmlspecialchars(mysql_escape_string(stripslashes(trim(strip_tags($id)))));
return $result;
}

}


?>

Спустя 1 минута, 10 секунд (14.09.2012 - 22:25) Markus111 написал(а):
и вот весь скрипт
$("#save_nac").click(function() {
var title_nac=$("#title_nac").val();
$("#form").hide();
$(".ajax").show();
$.post(url+'/add/nacion', {id:id,title:title_nac},function(data){
if(data =="net"){
alert('Вы ошиблись, заполните все поля')
$("#form").show();
$(".ajax").hide();
}
if(data =="ok"){
alert('Национальность добавлена')
if(data=='ok')window.location.href=url+'/nacion';
}
}
);

$("#form").ajaxError(function(event, XMLHttpRequest, ajaxOptions, thrownError) {
alert('Извените произошла ошибка при отправке');
$("#form").show();
$(".ajax").hide();
});
});

Спустя 4 минуты, 9 секунд (14.09.2012 - 22:29) redreem написал(а):
1. до echo не вижу отправки заголовка header('Content-type: text/html; charset=utf-8');
2. в js после алертов нужны ;

Спустя 2 минуты, 40 секунд (14.09.2012 - 22:32) Markus111 написал(а):
у меня мвс структура, я прописал в index.php

Спустя 3 минуты, 10 секунд (14.09.2012 - 22:35) redreem написал(а):
js-консоль чтонить пишет? говорю же - подозрительное отсутствие ; (точки с запятой) после алерта. если alert(data); выводит 'net', то и условие должно сработать. других причин нет.

Спустя 4 минуты, 31 секунда (14.09.2012 - 22:40) Markus111 написал(а):
проставил ; , тоже самое
$("#save_nac").click(function() {
var title_nac=$("#title_nac").val();
$("#form").hide();
$(".ajax").show();
$.post(url+'/add/nacion', {id:id,title:title_nac},function(data){
if(data =="net"){
alert('Вы ошиблись, заполните все поля');
$("#form").show();
$(".ajax").hide();
}
if(data =="ok"){
alert('Национальность добавлена');
if(data=='ok')window.location.href=url+'/nacion';
}
}
);

$("#form").ajaxError(function(event, XMLHttpRequest, ajaxOptions, thrownError) {
alert('Извените произошла ошибка при отправке');
$("#form").show();
$(".ajax").hide();
});
});

Спустя 1 минута, 58 секунд (14.09.2012 - 22:42) Markus111 написал(а):
попробовал вот так
$("#save_nac").click(function() {
var title_nac=$("#title_nac").val();
$("#form").hide();
$(".ajax").show();
$.post(url+'/add/nacion', {id:id,title:title_nac},function(data){
if(data =="net"){
alert('Вы ошиблись, заполните все поля');
$("#form").show();
$(".ajax").hide();
}
if(data =="ok"){
alert('Национальность добавлена');
if(data=='ok')window.location.href=url+'/nacion';
}
alert(data);
});

$("#form").ajaxError(function(event, XMLHttpRequest, ajaxOptions, thrownError) {
alert('Извените произошла ошибка при отправке');
$("#form").show();
$(".ajax").hide();
});
});

alert(data); выводит net

Спустя 7 минут, 46 секунд (14.09.2012 - 22:49) Markus111 написал(а):
консоль пишет ответ net

Спустя 3 минуты, 33 секунды (14.09.2012 - 22:53) Markus111 написал(а):
может есть идея как по другому сделать, а то в
if(data =="net"){
alert('Вы ошиблись, заполните все поля');
$("#form").show();
$(".ajax").hide();
}

не срабатывает и
$("#form").show();
$(".ajax").hide();

Спустя 2 минуты, 44 секунды (14.09.2012 - 22:56) redreem написал(а):
а что выведет alert(typeof data); ?
если object, то возможно надо будет брать date.responseText или посмотреть что в data сидит вообще, например for (var i in data) alert(data[i]);
еще вариант - вывести alert(data.length);, если будет не равно 3, значит зарыты скрытые символы, может BOM какой прицепился к ответу.

Спустя 3 минуты, 44 секунды (14.09.2012 - 22:59) Markus111 написал(а):
alert(data.length); выводит 5, как поправить

Спустя 1 минута, 34 секунды (14.09.2012 - 23:01) redreem написал(а):
100% бом. пересохрани все серверные файлы без BOM (покрайней мере все, которые учавствуют при формировании ответа, все инклудные файлы в этом отношении). а если сайт не в utf-8, тогда надо твой глобальный заголовок херить и для ajax ответа делать свой заголовок.

Спустя 7 минут, 17 секунд (14.09.2012 - 23:08) Markus111 написал(а):
пересохранил странички теперь показывает 10, сайт в utf-8

Спустя 14 минут, 7 секунд (14.09.2012 - 23:22) redreem написал(а):
странно. кроме 2-х байтов BOMа к ответу нечему цепляться. ты БЕЗ BOM пересохранил? может ошибся и наоборот с BOM выбрал? BOM надо выкорчевать из всех файлов, начиная с index.php и по цепочке все что инклудится. заголовок тоже бы увидеть. как вариант конечно можно брать в js последние 3 символа, но это уж всем костылям костыль будет.

Спустя 1 минута, 39 секунд (14.09.2012 - 23:24) Markus111 написал(а):
исправлял в нотпад, он преобразовал в вом, исправил в дримвивере теперь выводит 5 символов

Спустя 1 минута, 33 секунды (14.09.2012 - 23:26) redreem написал(а):
незнаю насчет дримвивера, я бы просто в notepad++ открыл все файлы и выбрал
МЕНЮ - КОДИРОВКИ - ПРЕОБРАЗОВАТЬ В UTF-8 БЕЗ БОМ, и сохранил. что там дримвивер прикручивает еще - это гадать - неперегадать.

Спустя 7 минут, 8 секунд (14.09.2012 - 23:33) Markus111 написал(а):
нотыпадом поправил все страницы всеравно 5 символов

Спустя 1 минута, 25 секунд (14.09.2012 - 23:34) redreem написал(а):
значит не все поправил. какую-то одну упустил. как раз 5-3 = 2 - бом символы.

Спустя 10 дней, 23 часа, 37 минут (25.09.2012 - 23:11) kuzroman написал(а):
Вот вы чудите))

в вашем случае
 function(data){console.log('data', data)} 
data это объект.
надеюсь консолью пользоваться умеете?
f12 если что, далее console если пользуетесь firebug или chrom.
И смотрите что возвращает консоль лог
там будет что то вроде
data Object
нажми на Object и посмотри возвращаемые свойства


условие if(data=='net')alert('Вы ошиблись при вводе'); само по себе некорректно
объект сравниваете со строкой

посмотри что у тебя в data и сравнивай ну например
if (data.свойство =='net' ) {
alert('Вы ошиблись при вводе');
}


_____________
https://t.me/pump_upp
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.