如何在jquery/脚本传递用户输入数据?我正在使用编码器PHP框架

How to pass user input data in jquery/ script? i am using codeigniter php framework

本文关键字:编码器 框架 PHP 数据 输入 jquery 脚本 用户      更新时间:2023-09-26

我正在制作一个只搜索一个数据(tracking_no)的系统,如果tracking_no存在,显示跟踪号详细信息,但如果不运行表单验证显示错误。但我的问题是我怎么能把用户的输入传递给jquery/脚本,如果用户输入一个tracking_no == "123-123-ABC",如果成功

window.location。href = baseurl ()/index . php/主/show_tracking_details/abc"123 - 123";

(见MYSCRIPT第16行)

使用模态输入:

<div class="header-line"></div>
<div class="modal fade" id="modal_form_tracking" role="dialog">
<div class="modal-dialog">
    <div class="modal-content">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
            <div class="titolo">
            <h3 class="titolo" style="margin-top: 35px; color:orange;">Search Delivery<br>by Tracking No.</h3>
        </div>
        <div class="modal-body form">
            <form action="#" id="form_tracking" class="form-horizontal">
                <div class="form-body"><br><br>
                    <div class="form-group">
                        <label class="control-label col-md-3">Tracking No.</label>
                        <div class="col-md-9">
                            <input name="tracking_no" placeholder="Enter Tracking no." class="form-control" type="text">
                            <span class="help-block"></span>
                        </div>
                    </div>
                </div>
            </form>
        </div>
        </div>
        <div class="modal-footer">
            <button type="button" id="btnTracking" onclick="search_tracking()" class="btn btn-primary"
            style="background-color: orange; border-color: orange;">Submit</button>
            <button type="button" class="btn btn-danger" data-dismiss="modal"
            style="background-color: gray; border-color: gray;">Cancel</button>
        </div>
    </div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->

MYSCRIPT

function search_tracking()
{
$('#btnTracking').text('Searching...'); //change button text
$('#btnTracking').attr('disabled',true); //set button disable 
var url = "<?php echo base_url('index.php/main/customer_delivery_details')?>";
$.ajax({
    url : url,
    type: "POST",
    data: $('#form_tracking').serialize(),
    dataType: "JSON",
    success: function(data)
    {
        if(data.status) //if success close modal and reload ajax table
        {
            $('#modal_form_tracking').modal('hide');
            window.location.href= "<?php echo base_url('index.php/main/show_tracking_details')?>"
            alert("Track number exist ");
        }
        else
        {
            for (var i = 0; i < data.inputerror.length; i++) 
            {
                $('[name="'+data.inputerror[i]+'"]').parent().parent().addClass('has-error'); //select parent twice to select div form-group class and add has-error class
                $('[name="'+data.inputerror[i]+'"]').next().text(data.error_string[i]); //select span help-block class set text error string
            }
        }
        $('#btnTracking').text('Search'); //change button text
        $('#btnTracking').attr('disabled',false); //set button enable 

    },
    error: function (jqXHR, textStatus, errorThrown)
    {
        alert('Error searching data.');
        $('#btnTracking').text('Search'); //change button text
        $('#btnTracking').attr('disabled',false); //set button enable 
    }
});
}

mycontroller.php

public function customer_delivery_details(){
    $this->_validate_trackingno();
    $data = $this->input->post('tracking_no');
    $this->model_main->find_by_tracking_no($data);
    echo json_encode(array("status" => TRUE));
}
private function _validate_trackingno()
{
    $data = array();
    $data['error_string'] = array();
    $data['inputerror'] = array();
    $data['status'] = TRUE;
    $isTrackingExist = $this->model_main->isTrackingExist();
    if($isTrackingExist)
    {
        $data['inputerror'][] = 'tracking_no';
        $data['error_string'][] = 'Enter a valid tracking number.';
        $data['status'] = FALSE;
    }
    if($this->input->post('tracking_no') == '')
    {
        $data['inputerror'][] = 'tracking_no';
        $data['error_string'][] = 'Input tracking no.';
        $data['status'] = FALSE;
    }
    if($data['status'] == FALSE)
    {
        echo json_encode($data);
        exit();
    }
}

从输入字段中获取值并添加到url

这样的

  if(data.status) //if success close modal and reload ajax table
    {
        tracking_no = $('input[name="tracking_no"]').val();
        $('#modal_form_tracking').modal('hide');
        window.location.href= "<?php echo base_url('index.php/main/show_tracking_details')?>"+"/"+tracking_no;
        alert("Track number exist ");
    }

这里有很多选项可以做到这一点。其中之一是有一个提交按钮,该按钮调用一个函数,该函数将确定是否设置了搜索跟踪。

button type="button" id="btnTracking" onclick="search_tracking()" class="btn btn-primary"
这是正确的,所以现在你可以访问字段
<input name="tracking_no" placeholder="Enter Tracking no." class="form-control" type="text">

Javascript中的

$trackingno = $('#tracking_no').val();

现在使用Ajax将该值传递给PHP。在PHP中,断言trackingno是否有效。如果是,则返回您希望从服务器返回的详细信息的json。如果不是,则发回验证细节。

一个简单

if(!empty($_POST))

应该足以验证是否设置了跟踪号,因为您只有一个字段,否则它将为空。