【问题标题】:AJAX sends values but wasn't able to retrieve in PHPAJAX 发送值但无法在 PHP 中检索
【发布时间】:2016-02-04 09:48:15
【问题描述】:

您好,我正在尝试从链接传递值并使用 $_GET 接收值。我已经在本地尝试过,它可以工作,但是当我将它转移到实时站点时,它不会收到参数的值。

我尝试过使用 firebug,我可以看到值存储在链接中。但无法 $_GET 他们。

AJAX

function getDivUpdate(val) {

    var group = $("#grp").val();
    var div   = $("#div").val();
        $.ajax({
            type: "GET",
            url: "<?=base_url()?>personnel/get_division_update/",
            data:{"group": group, "div": div},
            success: function(data){
                $('#div1').html(data);
             }
        }); 
}

PHP

function get_division_update($val=NULL){

            if(isset($_GET['group'])){  
            $select = "d_divname,dr_division";
            $table = "tbl_division";
            $where = "dr_group = $_GET[group]";
            $join1 = "tbl_division_rel";
            $join2 = "d_id = dr_division";

            echo "<select class='fieldnames' id='div' name='div'>";
            echo "<option value=''>--Select--</option>";
            $division = $this -> Main -> select_data($select, $table, $where, $join1, $join2);
            foreach($division as $div){


                echo '<option value="'.$div['dr_division'].'"'; 
                if($div['dr_division'] == $_GET['div'])
                    { echo "selected=selected"; } echo ">"; 
                echo htmlspecialchars($div['d_divname']).'</option>';       

            }

            }

            else if(isset($_GET['div']) OR isset($_GET['group'])){

            $table="tbl_division";
            $select="*";
            $orderby="d_divname";
            $divs = $this -> Main -> dropdown_orderby($select, $table, $orderby);

            echo "<select class='fieldnames' id='div' name='div'>";
            echo "<option value=''>--Select--</option>";
            foreach($divs as $d){
                echo "<option value='".$d['d_id']."'>".$d['d_divname']."</option>";
            }

            }

            else if(!isset($_GET['div']) AND !isset($_GET['group'])){


            $table="tbl_division";
            $select="*";
            $orderby="d_divname";
            $divs = $this -> Main -> dropdown_orderby($select, $table, $orderby);

            echo "<select class='fieldnames' id='div' name='div'>";
            echo "<option value=''>--Select3--</option>";
            foreach($divs as $d){

                echo "<option value='".$d['d_id']."'>".$d['d_divname']."</option>";
            }


            }
        }

【问题讨论】:

  • &lt;?= 是否启用了服务器短标签?
  • 你确定.val()。你试过.text()吗?
  • 尝试提醒(数据);看看你会得到什么或使用错误:function(){}
  • @Dagon 它已启用。 @Roamer-1888 我只试过 .val() 因为它在 Select 选项中获取 id
  • 好的,我对 &lt;select&gt; 元素有 id=div 感到困惑。

标签: php jquery ajax


【解决方案1】:

请求是否真正成功,因为您需要回显基本 url 以获取路径,因为 base_url() 是返回值,而不是打印值,尝试更改为以下代码:

url: "<?= echo base_url()?>personnel/get_division_update/", 
// or
url: "<?= echo base_url('personnel/get_division_update/')?>", 

【讨论】:

  • 它甚至可以像url: "/personnel/get_division_update/", 一样简单,因为浏览器将采用与当前页面相同的协议和域。
【解决方案2】:

解决了这个问题。我刚刚更改了我的 codeigniter 的 uri 协议

来自

$config['uri_protocol'] = 'QUERY_STRING';

$config['uri_protocol'] = 'AUTO';

【讨论】:

    猜你喜欢
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多