Получить значение для php гиперссылки в ajax ответе - PullRequest
0 голосов
/ 06 февраля 2020

Я хочу выполнить действие ссылки на контроллер в codeigniter после получения ответа от ajax. Мне нужна переменная из ответа ajax, чтобы вставить ссылку на контроллер, а затем в контроллере мне нужно запустить процесс обновления. Я пытался использовать ссылку php, но она не работает. Ошибка показывает The URI you submitted has disallowed characters.

Вот скрипт

          $.ajax({
              type : "GET",
              url  : "<?php echo admin_url().'leads/data_status'; ?>",
              success : function(response2){
                 var data2 = JSON.parse(response2);
                 var html = '';
                 var a;

                 for(a=0; a<data2.length; a++)
                 {

                    html += '<tr>'+
                                '<td>'+data2[a].name+'</td>'+
                                '<td>'+data2[a].company+'</td>'+
                                '<td><a href="<?php echo admin_url().'leads/trash/status='?>'+data2[a].status+'&id='+data2[a].id+'">Back</a></td>'+
                             '</tr>';

                 }

              }
           })

Вот скрипт контроллера

public function trash(){
    $id=$this->input->get('id');
    $status=$this->input->get('status');

    $data = array(
        'status' => $status,
        'last_status' => null
    );

    $this->db->where('id',$id);
    $this->db->update(db_prefix() . 'leads', $data);

    redirect('admin');
}

Вы знаете, как исправить код?

Спасибо

1 Ответ

1 голос
/ 06 февраля 2020

В вашем коде есть проблемы с конкатенацией, я обновил строку, пожалуйста, попробуйте с этим

html += '<tr>'+
    '<td>'+data2[a].name+'</td>'+
    '<td>'+data2[a].company+'</td>'+
    '<td><a href="<?php echo admin_url();?>leads/trash/status='+data2[a].status+'&id='+data2[a].id+'">Back</a></td>'+
'</tr>';

или с сохранением URL-адреса в переменной типа

url = "<?php echo admin_url();?>leads/trash/";
url += 'status='+data2[a].status;
url += '&id='+data2[a].id;

html += '<tr>'+
    '<td>'+data2[a].name+'</td>'+
    '<td>'+data2[a].company+'</td>'+
    '<td><a href="'+encodeURIComponent(url)+'">Back</a></td>'+
'</tr>';

don не забудьте использовать urldecode в php, если вы используете encodeURIComponent

$id=urldecode($this->input->get('id'));
$status=urldecode($this->input->get('status'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...