обновить изображение src, используя jquery и codeigniter - PullRequest
0 голосов
/ 11 августа 2011

Я создаю catcha, используя jquery и codeigniter.Моя проблема во время обновления изображения капчи src не обновляется.

Вот код создания капчи

 <?php

класс Get_captcha extends Controller {

function Get_captcha()
{
    parent::controller();   
    $this->load->library('session');
    $this->load->library('form_validation');    
    $this->load->helper(array('form', 'url'));  
    $this->load->model('tools_model');                      
}

function index($random = false)
{
    $rand_string = $this->tools_model->RandomString(5);     
    $new_sess_data = array("random_number"=>$rand_string);
    $this->session->set_userdata($new_sess_data);       

    $image = imagecreatetruecolor(148, 25);     
    $dir = 'fonts/';

    $num = rand(1,2);
    if($num==1)
    {
        $font = "Capture it 2.ttf"; // font style
    }
    else
    {
        $font = "Molot.otf";// font style
    }

    // random number 1 or 2
    $num2 = rand(1,2);
    if($num2==1)
    {
        $color = imagecolorallocate($image, 113, 193, 217);// color
    }
    else
    {
        $color = imagecolorallocate($image, 163, 197, 82);// color
    }

    $white = imagecolorallocate($image, 255, 255, 255); // background color white
    imagefilledrectangle($image,0,0,399,99,$white);

    imagettftext ($image, 18, 0, 38, 22, $color, $dir.$font, $this->session->userdata('random_number'));

    header("Content-type: image/png");
    imagepng($image);
}
 }

код для html

 <img src="<?php echo site_url('get_captcha') ?>" alt="" id="captcha" /><a href="#" class="b" id="refresh-captcha">Refresh</a>

код дляJQuery

    $('#refresh-captcha').click(function(){
    $('#captcha').attr('src','<?php echo site_url('get_captcha') ?>');
});

1 Ответ

0 голосов
/ 11 августа 2011

Похоже, вы на самом деле не меняете изображение.Вам нужно изменить URL для браузера, чтобы снова искать изображение.Попробуйте изменить свой JS-код так, чтобы он выглядел следующим образом:

$('#refresh-captcha').click(function(){
    var random = new Date().getTime();
    $('#captcha').attr('src','<?php echo site_url('get_captcha') ?>?random='+random);
});

Это приведет к тому, что изображение будет «другим» при каждом нажатии кнопки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...