Хочется сделать проверку валидности ввода форм на php,что бы при отключенном JQwery всё работало! Вопрос:как сделать так(естественно при любых установках и настройках браузера),чтобы прямо на страницу пользователя выводилась надпись или маленькое окошко,оповещающее,что валидность введённые пользователем данные не прошли?Возможно ли это?Дайте ссылку,где почитать или часть кода разобраться... Заранее благодарен!
Блин,ожидал подобного ответа!))) А возможно написать,что бы php выводил на этой же странице отрицательный ответ? С помощью echo он перезагрузит браузер и выведет сообщение от ошибке на весь экран...а как сделать так,что бы только в таблице формы для регистрации!?
я чтото не особо уверен, что php может выводить хотя бы положительные ответы)) о чем речь? Чтобы вывести ошибки валидации? Так происходит сабмит формы (юзер жмет на кнопку) - если включен js - то происходит валидация на js (если ее сделали), поскольку обычно js перехватывает отправку формы. Если js выключен в браузере - то форма просто отправляется к php и там все обрабатываешь и выводишь ошибку. в чем загвоздка?
Вся проблема началась с того,что у меня при регистрации пользователя проверка идёт на квери и пхп, но когда пользователь уже со своей страницы хочет изменить регистрационные данные (изменить профиль,например),то скрипт квери уже не выдаёт ошибок! Мне кажется это из-за того,что с сайта квери использовал в меню вкладки,в одной из вкладок меню-гормошка,а уже в гормошке выводится форма для корректировки данных пользователя в которой не работает проверка валидности квери! Вот и пытаюсь понять почему не работает проверка квери или пытаюсь найти пути обхода! Если честно сижу над кодом с 9:00,но с мёртвой точки ещё не сдвинулся...
так быть может есть две страницы - регистрации, к примеру, и редактирование личных данных. на регистрации - такая проверка есть. на редактировании - ее нет, потому и не работает. Вот эта фраза вообще никак не влезла в голову: это баян, а не гормошка)
чё-то я ничё не понял в последнем посте. при регистрации скрипт исправно проверяет. а при редактировании/изменении уже не работает? посмотри как это реализовано в регистрации и сравни с тем, как это реализовано в изменении. уже не в последнем
Точнее напишу! Сначало использовал вот это: http://jqueryui.com/demos/tabs/#......the_tab_on_click_depending_on_form_validation потом это(внутри предыдущего меню): http://jqueryui.com/demos/accordion/ А уже в одной из вкладо аккардиона у меня меню настройки с сабмитом под каждым пунктом исправления! К полям при вводе данных на странице регистрации я классы привязал (на них и основывается квери выборка) и теже классы использую при вводе отредактированных пользователем данных(только внутри кучи меню)! На выходе сообщения о валидности при регистрации выводит,а при проверке отредактированных данных НЕТ!
Реализовано совершенно одинаково,там к input лассы привязываются,которые и и позваляют квери обращаться к полям!
Panich а точняк код подключен? тыкни ниже этой гормошки обычный инпут, поставь эту валидацию на него, посмотри будет ли он работать, вне этого меню.
Там код километровый...))) Может ли быть проблема в том,что я это форму вывожу через: $HTML='................'; print $HTML; Поэтому инпут не получится вытащить вне этой формы,так как дальше код на html написан,а форма на php!((( Вспотел аж в этой жаре!!!!!!!!Во блин МОЗГ кипит!!!
Не-е-е-е!У меня вот так: PHP: class='validate[required,custom[onlyLetter],] text-input' это например для поля ввода имени!
да не вытягивать инпут нужно, а вставить. на той же странице, желательно под той менюхой надо вставить обычный инпут и привязать на него эту валидацию на jquery. нужно сначала определить, что скрипт твоей этой гормошки не конфликтует со скриптом валидации. для этого и надо "независимый" инпут на страницу разместить
А-а-а-а-а!Так вот в этом вся и проблема!))) Я всял один инпут,вытажил его с сабмит в самое начало кода "боди" и вывел форму на экран,нотом попробовал проверку валидности и фигушки! Тогда собрал все ссылки на css и квери с хедера старницы регистрации и копированием (мало ли ранее чего перепутал) перетащил на страницу пользователя-и это не помогло! Сами css для этох полей во всех случаях работают,а вот квери нет!Значит среди этих квери и есть конфликт,но как он может быть,если к больше инпутов на страницу кроме как при изменении данных пользователя не использую...!!!Соответственно и квери под них не писал и с официального сайта для них не брал-а в чём дилема не понятно!!!(((
Ниче не понял )) Методом исключения подключай файлы css + js и что там у тебя еще, смотри после какого файла перестает работать. И вообще желательно глянуть в firebug, мож там напишет тебе в чем проблема.
Думал скачал ненужные свойства с сайта квери,где конфликт происходит(качал всё подряд на запас).Сейчас попробовал скачать только привязанные к необходимым именно мне опциям в которые инпут не входит,заменил-всё css поменялось,сайт изменил свой внешний вид,но функционал остался! При всём при этом валидность так и не заработала! Исключать из хедера ссылки пробовал-либо пререстаёт всё меню работать либо валидность так и не пашет! Тут точно квери виноват! Кто встретит "его" передайте,что ему хана!
мне так трудно сказать, не видя ничего из кода и что как себя ведет. обычно, такое решается методом тыка и раздумий в течении получаса.
Вот код регистрации: PHP: <body> <table width="avto" border="0" cellspacing="0" cellpadding="0"> <tr><td colspan="3"> <!-- ШАПКА --> <div id="forheader"> <img src="img_index/_______.jpg" alt="Хедер" title="Шапка сайта"/> </div> </td></tr> <tr><td valign="top" rowspan="2"> <form id="id_form" action="../save_user.php" method="POST" name="form" onClick="chek()"> <table id="for_tabel_reg"> <tr><td> <div id="text_reg"> <strong>Введите имя</strong> </div> </td><td> <input class="validate[required,custom[onlyLetter],] text-input" id="id_form_enter" type="text" name="name" maxlength="20"> </td></tr> <tr><td> <div id="text_reg"><strong>Выберете пол</strong></div> </td><td> <input id="mugskoy" type="radio" name="pol" value="мужской"><strong id="id_form_pol">М</strong> <input id="genskiy" type="radio" name="pol" value="женский"><strong id="id_form_pol">Ж</strong> </td></tr> <tr><td> <div id="text_reg"><strong>Дата рождения</strong></div> </td><td> <select id="id_form_option" name="vozr_namber" size="3"> <option>01</option><option>02</option><option>03</option><option>04</option> <option>05</option><option>06</option><option>07</option><option>08</option> <option>09</option><option>10</option><option>11</option><option>12</option> <option>13</option><option>14</option><option>15</option><option>16</option> <option>17</option><option>18</option><option>19</option><option>20</option> <option>21</option><option>22</option><option>23</option><option>24</option> <option>25</option><option>26</option><option>27</option><option>28</option> <option>29</option><option>30</option><option>31</option> </select> <select id="id_form_option" name="vozr_mouns" size="3"> <option>01</option><option>02</option><option>03</option> <option>04</option><option>05</option><option>06</option> <option>07</option><option>08</option><option>09</option> <option>10</option><option>11</option><option>12</option> </select> <select id="id_form_option" name="vozr_year" size="3"> <option>1961</option><option>1962</option><option>1963</option> <option>1964</option><option>1965</option><option>1966</option> <option>1967</option><option>1968</option><option>1969</option> <option>1970</option><option>1971</option><option>1972</option> <option>1973</option><option>1974</option><option>1975</option> <option>1976</option><option>1977</option><option>1978</option> <option>1979</option><option>1980</option><option>1981</option> <option>1982</option><option>1983</option><option>1984</option> <option>1985</option><option>1986</option><option>1987</option> <option>1988</option><option>1989</option><option>1990</option> <option>1991</option><option>1992</option><option>1993</option> <option>1994</option><option>1995</option><option>1996</option> <option>1997</option><option>1998</option><option>1999</option> <option>2000</option><option>2001</option><option>2002</option> <option>2003</option><option>2004</option><option>2005</option> <option>2006</option><option>2007</option><option>2008</option> <option>2009</option><option>2010</option><option>2011</option> </select> </td></tr> <tr><td> <div id="text_reg"><strong>Город</strong></div> </td><td> <select id="id_form_enter" name="sity"> <option>Москва</option> <!-- <option>Санкт-Петербург</option> <option>Ростов-на-Дону</option> <option>Краснодар</option> --> </select> </td></tr> <tr><td> <div id="text_reg"><strong>Введите логин:</strong></div><br> </td><td> <input class="validate[required,custom[email]] text-input" id="id_form_enter" type="text" name="login" maxlength="30" value="Пример:you@site.ru"> </td></tr> <tr><td colspan="2"> <div id="text_reg"> <em id="text_exempl">логин должен соответствовать вашему действительному E-mail адресу</em> </div> </td></tr> <tr><td> <div id="text_reg"><strong>Введите пароль:</strong></div> </td><td> <input id="id_form_pass" class="validate[required,custom[noSpecialCaracters] text-input" type="password" name="pass" maxlength="14" > </td></tr> <tr><td> <div id="text_reg"><strong>Подтвердите пароль:</strong></div> </td><td> <input id="id_form_pass" class="validate[required,confirm[id_form_pass]] text-input" type="password" name="pass1" maxlength="14" > </td></tr> <tr><td> <div id="text_reg"><p><strong>Введите код с картинки:</strong></p></div> </td><td> <input id="id_form_enter" class="validate[required,custom[noSpecialCaracters]" type="text" name="code" maxlength="20"> </td></tr> <tr><td colspan="2"> <img src="../znakomstva/code/my_codegen.php"> </td></tr> <tr><td colspan="2"> <div id="text_exempl"> <input type="checkbox"> <strong id="text_reg"> Я соглашаюсь с правилами сайта </strong> </div> </td></tr> <tr><td colspan="2"> <input id="my_button" type="submit" name="zareg" value="ЗАРЕГИТРИРОВАТЬСЯ"> </form> </td></tr> </table> </td> <td width="650" height="58"> </td> <td valign="top" width="150" rowspan="2"> <!-- ПРАВЫЙ БЛОК --> <p>"здесь выводится реклама или текст в стиле: это сайт на котором вы можете...бла-бла-бла";</p> </td></tr> <tr><td height="455"> <!-- ОСНОВНАЯ КАРТА --> <!-- вставить меню в квери,но не рабочее! --> <img src="../img_index/__________.jpeg" usemap="#Map"> <map name="map"> <area shape="poly" coords="10,20,82,90" href="img_index/moscow.jpeg" alt="vihino" coords-> <!-- и так для каждой точки-ссылки --> </map> </td></tr> <tr><td colspan="3"> </td></tr> </table> </body> А вот меню пользователя: PHP: <script> $(function() { $( "#tabs" ).tabs(); }); </script> <div class="demo"> <div id="tabs"> <ul> <li><a href="#tabs-1">1</a></li> <li><a href="#tabs-2">2</a></li> </ul> <div id="tabs-1"> <div id="accordion"> <h3><a href="#">1 вкладка</a></h3> <div> <input id="battom_udalit" type="submit" name="" value="УДАЛИТЬ"> <a href="#" id="button" class="ui-state-default ui-corner-all">ПРЕДЛОЖИТЬ</a> <div class="demo"> <div class="toggler"> <div id="effect" class="ui-widget-content ui-corner-all"> <h3 class="ui-widget-header ui-corner-all">условия:</h3> <form id="" action="../_______.php" method="POST" name="form" onClick="chek()"> <table> <tr> <td> <strong class="text_menu_vstr"> Выбирете станцию метро</strong> </td> <tr> <tr> <td> <strong class="text_menu_vstr">пол:</strong> <input class="text_menu_vstr" id="" type="radio" name="pol" value="мужской"><strong>М</strong> <input class="text_menu_vstr" id="" type="radio" name="pol" value="женский"><strong>Ж</strong> </td> </tr> <tr> <td> <strong class="text_menu_vstr">Желаемая дата:</strong><br> <?php $today = date('dmY'); $tomorrow = date('dmY', time() + 60*60*24); $after_tomorrow = date('dmY', time() + 60*60*24*2); $HTML=' <input class="" id="" type="radio" name="" value="'.$today.'"><strong>сегодня</strong><br> <input class="" id="" type="radio" name="" value="'.$tomorrow.'"><strong>завтра</strong><br> <input class="" id="" type="radio" name="" value="'.$after_tomorrow.'"><strong>послезавтра</strong><br> '; print $HTML; ?> </td> </tr> <tr> <td> <div class="demo"> <p> <label for="amount" class="text_menu_vstr"><strong class="text_menu_vstr">Желаемое время:</strong></label> <input type="text" id="amount" style="border:0; color:#f6931f; font-weight:bold;" /> </p> <div id="slider-range"></div> </div> </td> </tr> <tr> <td> <script type="text/javascript"> $('textarea').avtoResize(),$('textarea').focus(function(){ $(this).css("background","none") }).blur(function(){ if($(this)[0].value==''){ $(this).css("background","url(image.png)no-repeat")}}); </script> <style type="text/css"> .comment { font-size: 1em; width: 193px; height: 100px; background: transparent; } .comment textarea { border: 1 0 0 1; background: transparent; margin: 3px; width: 193px; padding: 5px 0 5px 5px; height: 100px; overflow: avto; color:#FFFFFF; } </style> <strong class="text_menu_vstr">Краткая информация:</strong> <div class="comment"><textarea id="" name="" cols="10" rows="10" value="Вы можете написат таемую информацию)"></textarea></div> </td> </tr> </table> <input id="" type="submit" name="" value="ДОБАВИТЬ"> </form> </div> </div> </div> <?php include ("bd_moy_vstrechy.php"); $sql = "SELECT idvstrechy, metro, date, time FROM vstrechy WHERE poluchatel='$name'"; $result5 = mysql_query($sql, $db_vstrechy)or die("Ошибка в запросе: " . mysql_error()); if (!$result5) { echo "ошибка - ".mysql_error()."<br>"; echo $sql; exit(); } while ($myrow5 = mysql_fetch_array($result5)) { if (!empty($myrow5['idvstrechy'])) { printf("<table class='tb_vibor' border='1'> <thead> <tr> <th colspan='2'> <input type='checkbox'> </th> <th><p class='vibor'>место</p></th> <th colspan='2'> </th> <th><p class='vibor'>дата/<br>время</p></th> <th> </th> </tr> </thead> <tbody> <tr> <td class='vibor'> <input type='checkbox'> </td> <td colspan='3' class='vibor'>%s</td> <td colspan='3' class='vibor'>%s %s</td> </tr> </tbody> </table>", $myrow5['metro'], $myrow5['date'], $myrow5['time']); } else { echo("ещё нет!"); } } ?> </div> <h3><a href="#">Мне предложили</a></h3> <div> <?php include ("bd_moy_vstrechy.php"); $sql_avtor = "SELECT * FROM vstrechy WHERE poluchatel='$name' ORDER BY idvstrechy DESC"; $result6 = mysql_query($sql_avtor,$db_vstrechy)or die("Ошибка в запросе: " . mysql_error()); $myrow6 = mysql_fetch_array($result6); if (!$result6) { echo "ошибка - ".mysql_error()."<br>"; echo $sql; exit(); } if (!empty($myrow6['idvstrechy'])) { $author = $myrow6['author']; include ("bd.php"); $result7 = mysql_query("SELECT * FROM users WHERE name='$author'",$db); $myrow7 = mysql_fetch_array($result7); if ($myrow7['avatar'] =='' or empty($myrow7['avatar'])) { $avatar_avtor = "../file/avatars/net-avatara.jpg"; } else { $avatar_avtor = $myrow7['avatar']; } if(preg_match('/[.](JPG)|(jpg)|(gif)|(GIF)|(png)|(PNG)$/', $_FILES['avatar_avtor']['name'])) { echo ("Формат изображения не соответствует установленной сайтом концепции!"); } else{} $w_avtor = 90; $w_src_avtor = imagesx($avatar_avtor); $h_src_avtor = imagesy($avatar_avtor); $dest_avtor = imagecreatetruecolor($w_avtor,$w_avtor); if ($w_src_avtor>$h_src_avtor) { imagecopyresampled($dest_avtor, $avatar_avtor, 0, 0, round((max($w_src_avtor,$h_src_avtor)-min($w_src_avtor,$h_src_avtor))/2), 0, $w_avtor, $w_avtor, min($w_src_avtor,$h_src_avtor), min($w_src_avtor,$h_src_avtor)); if ($w_src_avtor<$h_src_avtor) { imagecopyresampled($dest_avtor, $avatar_avtor, 0, 0, 0, 0, $w_avtor, $w_avtor, min($w_src_avtor,$h_src_avtor), min($w_src_avtor,$h_src_avtor)); if ($w_src_avtor == $h_src_avtor) { imagecopyresampled($dest_avtor, $avatar_avtor, 0, 0, 0, 0, $w_avtor, $w_avtor,$w_src_avtor, $w_src_avtor); } else{} } else{} } else{} } else{} $vozr_namber_avtor = $myrow7['vozr_namber']; $vozr_mouns_avtor = $myrow7['vozr_mouns']; $vozr_year_avtor = $myrow7['vozr_year']; $age_day_avtor = $day - $vozr_namber_avtor; $age_mauns_avtor = $mauns - $vozr_mouns_avtor; $vozrast_avtor = $year - $vozr_year_avtor; if ($age_mauns_avtor < 0 and $age_day_avtor < 0) { $vozrast_avtor = $vozrast_avtor - 1; } else{} $vozrast_avtor = (int)$vozrast_avtor; if ($vozrast_avtor >= 5 && $vozrast_avtor <= 20 || $vozrast_avtor >= 25 && $vozrast_avtor <= 30 || $vozrast_avtor >= 35 && $vozrast_avtor <= 40 || $vozrast_avtor >= 45 && $vozrast_avtor <= 50 || $vozrast_avtor >= 55 && $vozrast_avtor <= 60) { $let_avtor = "лет"; } else{ if($vozrast_avtor == 1 || $vozrast_avtor == 21 || $vozrast_avtor == 31 || $vozrast_avtor == 41 || $vozrast_avtor == 51) { $let_avtor = "год"; } else{ if( $vozrast_avtor >= 2 && $vozrast_avtor <= 4 || $vozrast_avtor >= 22 && $vozrast_avtor <= 24 || $vozrast_avtor >= 32 && $vozrast_avtor <= 34 || $vozrast_avtor >= 42 && $vozrast_avtor <= 44 || $vozrast_avtor >= 52 && $vozrast_avtor <= 54) { $let_avtor = "года"; } else{} } } while ($myrow7 = mysql_fetch_array($result5)) { if (!empty($myrow5['idvstrechy'])) { printf(" <table border='0'> <tr> <td>%s %s %s<br> %s<br> %s<br> %s </td> </tr> </table>", $myrou7['name'], $vozrast_avtor, $let_avtor, $avatar_avtor, $myrow7['sity'],$myrow7['metro']); } else { echo "Будте активнее!:)"; } } ?> </div> <h3><a href="#">Поиск</a></h3> <div><p>вот тут 3 цикл находится!</p></div> <h3><a href="#">Сог</a></h3> <div><p>вот тут 4 цикл находится!</p></div> </div> </div> <div id="tabs-2"> <?php $HTML=' <table border="1"> <tr> <td colspan="2"> <form action="../php/update_user.php" method="post" onClick="chek()">Ваше имя: <strong>'.$name.'</strong> </td> </tr> <tr> <td>Имя:<br> </td> <td><input class="validate[required,custom[onlyLetter],] text-input" id="id_form_enter" type="text" name="name" maxlength="20"> <input type="submit" name="submit" id="my_button" value="изменить"> </td> </form> </tr> <tr> <td colspan="2"> <form action="update_user.php" method="post">Ваш логин: <strong>'.$login.'</strong> </td> </tr> <tr> <td>логин:<br> </td> <td><input maxlength="20" name="login" type="text"> <input type="submit" name="submit" value="изменить"> </td> </form> </tr> <tr> <td colspan="2"> <form action="update_user.php" method="post"> Ваш пароль: <input maxlength="20" name="pass" type="text"><br> Новый пароль: <input maxlength="20" name="pass1" type="text"><br> <input type="submit" name="submit" value="изменить"> </td> </form> </tr> <tr> <td colspan="2"> <form action="update_user.php" method="post">Ваш город: <strong>'.$sity.'</strong> </td> </tr> <tr> <td>Город:<br> </td> <td> <select id="" name="sity"> <option>Москва</option> </select><br> <input type="submit" name="submit" value="изменить"> </td> </form> </tr> <tr> <td colspan="2"> <form action="update_user.php" method="post">Коротко о себе:</strong> </td> </tr> <tr> <td colspan="2"> <textarea id="" name="" cols="35" rows="10" maxlength="300" value=""></textarea><br> <input type="submit" name="submit" value="изменить"> </form> </td> </tr> </table>'; print $HTML; ?> </div> </div> </div> Конечно,если поможет...
Такая каша.. Попов и сюда добрался. тег <style> должен быть в <head>, а не в теле. хотя это может и не есть причиной. это чтото. мой совет - переделай страницу заново и сделай нормально. вверху страницы расположи php код, внизу - хтмл. сделай чтобы страница работала без этих валидаций и менюшек. потом добавь меню так как это написано в мануале на том сайте jquery. Думаю, там просчитали возможность конфликта скриптов или стилей. ты походу набросал всего что было "абы было". если меню работает - добавляй так же строго по мануалу ту валидацию. если валидация не заработает - надо в ней копаться. а так это как пальцем в небо.
Это мне на одном из форумов посоветовали-сказали,что так лучше браузер код читает-вот я и использую! Да я её уже раз 500 переделываю-опыта не хватает и знаний-вот и решил за самое сложное браться сразу-так приду к профессионализму быстрее))) Как с помощью пхп,расположенного вверху,можно осуществить вывод необходимой таблицы(например)внутри кода хтмл!?С помощью "инклюда"!?!?Но тогда я так и собирался сделать,когда всё сделаю! Делал всё поэтапно,разбирался-поэтому и задался вопросом почему не работает? Скрипт проверки инклюда на квери я взял совсем с другого сайта-от сюда(как я думаю)и конфликт! Чувствую,ещё денёк мне возиться..... П.С.Скажите,сильно стрёмный код получился?Как на Ваше мнение!?[/css]
Инклюд в П.С.))): Только без учёта включённых css и квери кодов-это я потом,конечно, выкину в скрипты отдельные!?
это жопа какаято. ) впринципе, так и должно быть на начальных этапах.. но жопа ведь)) хотел бы увидеть этот пост. сверху идет логика. ты, например, обрабатываешь входящие данные. например, тебе надо чтото вывести из базы но выводить надо в центре страницы, в середине хтмл кода. сверху делай запрос, а в той середине еще вставляй цикл. то есть вверху у тебя: $data = mysql_query(); if(mysql_num_rows($...) == 0) { } и прочее. а в том центре страницы: while($temp_data = mysql_fetch_assoc($data)) {} в итоге ты хоть както визуально отделишь логику от представления. структура гдето такая: <?php //code ?> <html> <head> <script></script> <style></style> </head> <body> тут верстка, циклы с выводом инфы из базы </body> </html> стили и скрипты инклудь в предназначенных для этого теге - <head>. Скрипты впринципе по стандарту можно и в теле - <body>. у тебя выйдет вверху пхп код, потом код вставки скриптов js, потом стили, потом хтмл. и все будет ясно. а так у тебя все разбросано по файлу как бутылки по квартире после пьянки. и выкинь все неиспользуемые условия if|else Плюс также зачем ты в $HTML впихуешь такой кусок хтмл кода и тут же его выводишь? его без этих переменных можно просто вставить. И не используй printf. Все блин, забудь про эту функцию. считай что ее нет для тебя на пол года. Выводи только через echo|print. и прижми весь код к левому краю. весь код всего файла. и потом сдвигай на одну табуляцию в каждом условии if()else. то есть так: if() { ____//code ____if() { ________//code ____} } а то трахадром в странице.