如何编辑数字斜杠的数据

时间:2017-05-30 03:39:42

标签: jquery ajax codeigniter

我的桌子有

no order | Description
1/R/2017 | Vegetable
2/R/2017 | Meal

如果在没有订单的情况下如何编辑我的描述1 / R / 2017 如果只是值1没有问题,但如果数据有斜线我不能编辑

导致我的标题显示如下 http://localhost/master/master_order/ajax_edit//985/IV/2017 也许导致我无法用985 / IV / 2017编辑我的订单我的ajax认为这是网址的一部分所以他们只是在斜线后面做错了" 2017"

这是我的观点

function edit_master_order(Nomor)
{
    save_method = 'update';
    $('#form')[0].reset(); // reset form on modals
    $('.form-group').removeClass('has-error'); // clear error class
    $('.help-block').empty(); // clear error string

    //Ajax Load data from ajax
    $.ajax({
        url : "<?php echo site_url('master_order/ajax_edit/')?>/" + Nomor,
        type: "GET",
        dataType: "JSON",
        success: function(data)
        {

            $('[name="Noorder"]').val(data.Noorder);
            $('[name="Description"]').val(data.Description);            
            $('#modal_form').modal('show'); // show bootstrap modal when complete loaded
            $('.modal-title').text('FORM EDIT MEDIA ORDER'); // Set title to Bootstrap modal title

        },
        error: function (jqXHR, textStatus, errorThrown)
        {
            alert('Error get data from ajax');
        }
    });
}

这是我的控制器

public function ajax_edit($Noorder)
    {
        $data = $this->master_order->get_by_id($Noorder);
        echo json_encode($data);
    }

如果我必须使用URI_encode,那么我的respone显示为null

该代码如何帮助

3 个答案:

答案 0 :(得分:1)

您好,如果您想使用'/'编辑数据,那么您需要使用php的explode()来划分字符串

$result = explode('/','1/R/2017');

所以它会按照下面的

给出输出
$result[0]//1
$result[1]//R
$result[2]//2017

现在你可以对这个数组进行操作,然后就可以合并它了,就像这样

$r = $result[0].'/'.$result[1].'/'.$result[2];

所以这将根据您的数据库预览输出值,我希望这会对您有所帮助

答案 1 :(得分:0)

在php中使用爆炸列表

public function ajax_edit($noorder){
    list($nomor, $cat, $year) = explode("/", $noorder);
    // $nomor contain : 1, $cat : R, and $year : 2017
    $data = $this->master_order->get_by_id($nomor);
    echo json_encode($data);
}

此外,我在您的请求网址中看到双斜杠“//”,尝试使用GET参数,因此您的请求网址将如下所示:http://localhost/master/master_order/ajax_edit?id=985/IV/2017。使用以下方法获取您的id参数:

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

答案 2 :(得分:-1)

只需将您的请求类型更改为POST:

    var data_input = { no_order : Nomor } //Nomor is from parameter
    $.ajax({
        url : "<?php echo site_url('master_order/ajax_edit/')?>",
        type: "POST",
        data: data_input,
        dataType: "JSON",
        success: function(data)
        {
           //console.log( data ); //check if existing variable has desired value
           alert( data ); //if it shows 'object' if result exist
        },
        error: function (jqXHR, textStatus, errorThrown)
        {
            alert('Error get data from ajax');
        }
    });

<强> CONTROLLER

public function ajax_edit()
{
    $no_order = $this->input->post( 'no_order' );
    $data = $this->master_order->get_by_id($no_order);
    if ( count( $data ) != 0 ) {
        echo json_encode($data);
    }
    else {
        echo "No result found";
    }
}