【问题标题】:Get value to php hyperlink in ajax response在ajax响应中获取php超链接的价值
【发布时间】:2020-02-06 10:59:09
【问题描述】:

从 ajax 获得响应后,我想在 codeigniter 中对控制器进行链接操作。我需要一个来自 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');
}

你知道如何修复代码吗?

谢谢

【问题讨论】:

  • 嗨@N'Bayramberdiyev,我以前试过,但仍然显示同样的错误
  • 然后尝试使用encodeURIComponent()对URL参数进行编码。在您的控制器中使用之前对其进行解码。在 AJAX 调用中,您在哪里输出 html 变量?
  • 您可以在您的回复中查看您获得的网址,然后尝试在您的浏览器中运行,然后检查您的网址中的问题...
  • 你可以试试这种方式在ajax函数之前分配一个变量 var adminurl = '';像这样在 ajax 中传递变量 url:adminurl + "leads/data_status",

标签: javascript php ajax codeigniter


【解决方案1】:

你的代码有连接问题,我已经更新了字符串,你可以试试这个

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>';

如果你使用encodeURIComponent,不要忘记在php中使用urldecode

$id=urldecode($this->input->get('id'));
$status=urldecode($this->input->get('status'));

【讨论】:

  • 嗨@Prateik,谢谢,我找到了代码在哪里
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-27
  • 1970-01-01
  • 2012-04-02
相关资源
最近更新 更多