Вообщем сделал проверку позиций формы по средствам js и после этого данные передаю по средствам ajаx в пхп файл (для дальнейшей проверки),но тут ничего не происходит...помогите разобраться... Вот часть js: Код (Text): if (emailVal.length !== 0) { var mail = /^[a-zA-Z0-9_\.\-]+\@([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9]{2,6}$/; if(!emailVal.match(mail)) { $("<div id='indicator'>Email,введённый Вами, не соответствует общепринятому!</div>").insertAfter('#btn_send'); return false; } } if (codeVal.length == 0) { $("<div id='indicator'>'Не указан проверочный код с картинки!'</div>").insertAfter('#btn_send'); return false; } else { $.ajax({ type: "POST", url: "inp_coock.php", data: {'title':titleVal, 'recipe':recipeVal, 'fileCoock1':foto1, 'fileCoock2':foto2, 'fileCoock3':foto3, 'fileCoock4':foto4, 'fileCoock5':foto5, 'text':textVal, 'code':codeVal}, success: function(html){ if (html !== '') { $("<div id='indicator'></div>").insertAfter('#btn_send').html(html); document.getElementById('btn_send').disabled = true; } else { $('#indicator').fadeOut(1000); document.getElementById('btn_send').disabled = false; } } }); } А тут пхп: Код (Text): $text = trim($_POST['text']); if(get_magic_quotes_gpc()) { $text = stripslashes(); } $text = mysql_real_escape_string(strip_tags($text)); $text = htmlspecialchars($text); if(strlen($recipe)<100 || strlen($recipe)>20000) { $html = '<div>"Процес приготовления не может быть меньше 200-от символов!"</div>'; } echo $html; Так вот при проверке js сообщение об ошибке высвечивается на странице как задумано,но при передаче в php вообще ничего не происходит... Заранее благодарен!
А что здесь не так? Код (Text): $text = mysql_real_escape_string(strip_tags($text)); $text = htmlspecialchars($text); Убираю html теги и всё такое... Я вот сократил даже до: Код (Text): $('#formcoock').submit(function(){ var titleVal = $('#formcoock input[name=title]').val(); var recipeVal = $('#formcoock input[name=recipe]').val(); var foto1 = $('#formcoock input[name=fileCoock1]').val(); var foto2 = $('#formcoock input[name=fileCoock2]').val(); var foto3 = $('#formcoock input[name=fileCoock3]').val(); var foto4 = $('#formcoock input[name=fileCoock4]').val(); var foto5 = $('#formcoock input[name=fileCoock5]').val(); var textVal = $('#formcoock textarea[name=text]').val(); var emailVal = $('#formcoock input[name=email]').val(); var codeVal = $('#formcoock input[name=code]').val(); $.ajax({ type: "POST", url: "inp_coock.php", data: {'title':titleVal, 'recipe':recipeVal, 'fileCoock1':foto1, 'fileCoock2':foto2, 'fileCoock3':foto3, 'fileCoock4':foto4, 'fileCoock5':foto5, 'text':textVal, 'code':codeVal}, success: function(html){ if (html !== '') { $("<div id='indicator'></div>").insertAfter('#btn_send').html(html); document.getElementById('btn_send').disabled = true; } else { $('#indicator').fadeOut(1000); document.getElementById('btn_send').disabled = false; } } }); }); то тоже ничего не работает-хотя в переменных есть данные.Алертом проверял-всё в норме... т.е. весь js выполняется как нужно,но как только утыкается в строчку:$.ajax({type: "POST",.....всё!Баста!Словно и не написано там ничего...Вроде правильно всё написал,как и раньше использовал,но....запарился уже искать...!!! П.С. Код (Text): if(strlen($recipe)<100 || strlen($recipe)>20000) тут я накосячил ,конечно!
зачем? куда? ну ты эскейпишь, потом спешалчаришь... ты понимаешь, что ты происходит со строкой? может путь неправильный? и там на серваке ничего нет? ты в чём смотришь? в фаербаге хорошо видны реквесты.
Я на денвере гоняю сейчас,на фаербаге проверял... А что со строкой происходит?Я этот код подсмотрел...)))Не правильно?
хз. url: "inp_coock.php", урл указан относительный. т.е. не от корня сайта. может быть из-за этого. еще раз. в консоли фаербага пишутся все запросы, смотри, какой там ответ. может он просто не находит этот скрипт.
Меня больше интересует, что это: $text = stripslashes(); Переменная $text после этой строки - становится пустой.
Обращения к php не происходит,т.е. js выполняется до момента пока не натыкается на строку ajax и потом просто игнорит оставшийся скрипт...вот что я не могу понять-почему отказывается дальше выполнять скрипт... или если вот так: Код (Text): $('#formcoock').submit(function(){ var titleVal = $('#formcoock input[name=title]').val(); var recipeVal = $('#formcoock input[name=recipe]').val(); var foto1 = $('#formcoock input[name=fileCoock1]').val(); var foto2 = $('#formcoock input[name=fileCoock2]').val(); var foto3 = $('#formcoock input[name=fileCoock3]').val(); var foto4 = $('#formcoock input[name=fileCoock4]').val(); var foto5 = $('#formcoock input[name=fileCoock5]').val(); var textVal = $('#formcoock textarea[name=text]').val(); var emailVal = $('#formcoock input[name=email]').val(); var codeVal = $('#formcoock input[name=code]').val(); $.ajax({ type: "POST", url: "inp_coock.php", data: {'title':titleVal, 'recipe':recipeVal, 'fileCoock1':foto1, 'fileCoock2':foto2, 'fileCoock3':foto3, 'fileCoock4':foto4, 'fileCoock5':foto5, 'text':textVal, 'code':codeVal}, success: function(html){ if (html !== '') { $("<div id='indicator'></div>").insertAfter('#btn_send').html(html); document.getElementById('btn_send').disabled = true; } else { $('#indicator').fadeOut(1000); document.getElementById('btn_send').disabled = false; } } }); }); ,то так же отказывается обращаться к php!!! П.С. путь к php как только не менял-всё без толку!!! Я вот так делаю: Код (Text): if(get_magic_quotes_gpc()) { $text = stripslashes(); } и переменная не пустая!
Я наверное со стеной разговариваю, но я еще раз: посмотри в консоли фаербага КУДА ИДУТ ЗАПРОСЫ И КАКИЕ ОТВЕТЫ ОНИ ПОЛУЧАЮТ
POST http://localhost/classicorange/inp_coock.php 200 OK 98ms code 23423 fileCoock1 fileCoock2 fileCoock3 fileCoock4 fileCoock5 recipe рецепт text Если тэги <script> имеют аттрибут "type", он должен быть "text/javascript" или "application/javascript". Так же скрипты должны быть читаемы (с корректным синтаксисом).Если тэги <script> имеют аттрибут "type", он должен быть "text/javascript" или "application/javascript". Так же скрипты должны быть читаемы (с корректным синтаксисом).Если тэги <script> имеют аттрибут "type", он должен быть "text/javascript" или "application/javascript". Так же скрипты должны быть читаемы (с корректным синтаксисом).Если тэги <script> имеют аттрибут "type", он должен быть "text/javascript" или "application/javascript". Так же скрипты должны быть читаемы (с корректным синтаксисом). title рецепт Ответ:<div>"Вы неверно ввели код с картинки!"</div> Всё так?Я не очень понимаю где смотреть...простите!
вообще ничего не происходит,словно вот этих строчек не существует: Код (Text): $.ajax({ type: "POST", url: "inp_coock.php", data: {'title':titleVal, 'recipe':recipeVal, 'fileCoock1':foto1, 'fileCoock2':foto2, 'fileCoock3':foto3, 'fileCoock4':foto4, 'fileCoock5':foto5, 'text':textVal, 'code':codeVal}, success: function(html){ if (html !== '') { $("<div id='indicator'></div>").insertAfter('#btn_send').html(html); return false; } else { $('#indicator').fadeOut(1000); return true; } } }); Посоветовали на другом форуме добавить после ajax:return false; и начали появляться на странице дивы из пхп файла с ошибками,но теперь кнопка снова не активируется!!! Я так сделал: Код (Text): else { $.ajax({ type: "POST", url: "inp_coock.php", data: {'title':titleVal, 'recipe':recipeVal, 'fileCoock1':foto1, 'fileCoock2':foto2, 'fileCoock3':foto3, 'fileCoock4':foto4, 'fileCoock5':foto5, 'text':textVal, 'code':codeVal}, success: function(html){ if (html !== '') { $("<div id='indicator'></div>").insertAfter('#btn_send').html(html); return false; } else { $('#indicator').fadeOut(1000); return true; } } }); return false; }
Кхм!Что значит итоговый!? П.С.Жене взялся сайт попробовать написать,что бы в декрете чем-нибудь занялась и тут на финальной стадии тупик получился...вот что значит любитель...)))
Я бы тебе посоветовал забить на свой код и взять плагин jquery validation, подключение простейшее. В полях формы просто прописываешь class required, например <input type="text" name="name" class="required" /> И все, минимум кода, максимум пользы.
Ну,жаль мне уже потраченного времени и на выходе не разобраться вообще позор! Добить уже охота и не париться...да и валидация моя работает прекрасно кроме самого ajax-а он мне нужен,что бы при отправке формы проверять введённый пользователем код проверки-это мне не один готовый плагин не реализует!Вот так!
Если ты скажешь, какие ошибки у тебя выходят после того как начинает работать ajax, тебе можно будет помочь. Посмотри в файербаге, какие ошибки выводятся? Скопируй их и покажи здесь
Да в том-то и деле,что ошибок нет! Вообщем смысл в чём: я написал валидацию на js,что бы мгновенная проверка производилась и,если ошибочно данные введены,то сразу ошибки и выскакивали на странице.Но когда проверка js доходит до ajax,то ничего не происходит и вступает в силу php, словно части кода не существует - игнор какой-то!Я смог добиться ,что бы выводились ошибки в реальном времени из php только поставив (посоветовали) после ajax код return false;,но в этом случае кнопка отправки формы работать перестала.Как сделать так что бы и сообщения выводились только моментально (без перезагрузки страницы) и кнопка работала?
Тогда убери кнопку <input type="submit" > и поставь туда например ссылку <a onclick="foo()"> , тогда у тебя форма не будет отправляться по любому. Данные ты все равно же проверяешь на ajax, так что проблем у тебя на возникнет Добавлено спустя 1 минуту 4 секунды: Можешь даже совсем тэг <form> убрать, по идее он тоже тебе не нужен =)
Да в том,то и дело,что аякс не проверяет,когда доходит дело до него,то ничего не происходит-нет проверки,словно части этого кода не существует!!!Хотя пхп файл есть,данные в переменных есть...ума не приложу!