Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обновление картинки Captcha 
:(
    Опции темы
Zmiuko
Дата 26.9.2009, 04:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


http://zmiuko.ru
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 8.10.2008

Репутация: нет
Всего: 2



Ребят, пишу гостевую Jquery + PHP.  У мну большое НО: я в Jquery и javascript редкий дубок... хотя немножко порой и в самом php.

На jquery никак не могу реализовать обновление картинки Капчи. Гостевая полностью у мну без перезагрузки, вот и выходит проблема с обновлением картинки.

Решил сделать через событие привязанное к submit, никак не могу придумать javascript :(
Код формы:
Код

<FORM name=pesan id="myForm" return false;"> 
<tr><td>Name* :<td><input id="username" name="username"></tr> 
<tr><td>Email* :<td><input id="email" name="email" width=10> 
<input type="checkbox" name="email_show" value="y" checked><small>show my email</tr> 
<tr><td>Homepage :<td><input name="fhomepage" size=30></tr> 
<tr><td>Code* :<td><input id="captcha" name="captcha" width=10>&nbsp;<img src="captcha/?61" style="cursor: pointer" OnClick="javascript:this.src='captcha/?'+Math.random()"></tr> 
<tr><td>Comment* :<td><textarea max="" id="msg" name="msg" rows=5 cols=40  onKeyup='jumlahKata(document.pesan);' RAP></textarea><small><br>Max 500 chars.Chars left : <input type="text" size=3 name=sisa maxlength=3 value="500"></tr> 
<input type=hidden name=act value=post><tr><td colspan=2><div>*: <small>Required field</small></div><div align=center><input id="btn" type="submit" value="Post"> <input type="reset"></div></tr> 
</FORM>


По адресу captcha/ лежит суровый php-скрипт который выдает картинку.

Народ, помогите пожалуйста.

Если кто-то может поделится рабочим куском кода обновления картинки на jQuery

З.Ы.:

Код Jquery у мну до глупости простой:
Код


    // загрузка сообщений из БД в контейнер messages
    $(document).ready(function () {
        $('#messages').load('show.php', null, nextPage); 
    });
    function nextPage() {
        $('a.page').click(function() { 
            $('#messages').load('show.php?page=' + $(this).html(), null, nextPage);
        });
    }
        
        
    $(document).ready(function(){

        $('#messages').load('show.php', null, nextPage); 
        
        // контроль и отправка данных на сервер в фоновом режиме при нажатии на кнопку "отправить сообщение"
        $("#myForm").submit(function(){
        
        
        
        
            var name = $("#username").val();
            var email  = $("#email").val();
            var msg  = $("#msg").val();
            var captcha  = $("#captcha").val();
            
            jQuery.get('captcha/chk.php', {'captcha': captcha}, function(data) { 

                if(captcha != '' && data == 'captcha_error')
                {
                    alert ("Внесите верное значение с изображения!");
                    return false;
                }

            });
            
            
            if (name =='')
            {
                alert ("Заполните имя пользователя!");
                return false;
            }
            if (email =='')
            {
                alert ("Укажите свой электронный почтовый ящик (e-mail) для обратной связи с вами!");
                return false;
            }
            if (msg =='')
            {
                alert ("Заполните текст сообщения!");
                return false;
            }
            if (captcha =='')
            {
                alert ("Внесите код с изображения!");
                return false;
            }

            $.ajax({
                type: "POST",
                url: "action.php",
                data: "username="+name+"&msg="+msg+"&captcha="+captcha+"&action=add",
                success: function(msg){
                    $('#messages').load('show.php', null, nextPage);
                    alert(name+"! Спасибо за комментарий!");
               }
            });
            
            return false;
        });
        
    });


action.php принимает $_POST и заканчивается header('location: index.php');
show.php выводит циклом по шаблону + еще по страничкам делится через переменную $_GET['page']

Вроде все описал досконально, заранее спасибо. smile

Добавлено через 2 минуты и 3 секунды
забыл сказать: после отправки не могу число сменить в урле картинки captcha/?[число]
PM MAIL WWW ICQ Skype Jabber   Вверх
Chewits
Дата 9.10.2009, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 26.3.2006
Где: НН, Питер, Саров

Репутация: нет
Всего: нет



да вроде вы придумали правильно javascript - надо обновить src у картинки.. а в том файле php, где выдается капча при её выдаче создавать (ну и если запрос повторный, то, получается, обновлять) значение капчи в переменную сессии, точнее что-нибудь типа md5() от значения, ну и проверка соответственно сводится с проверкой md5() от того что передала форма и со значением этой переменной сессии..
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0525 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.