Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用ajax脚本获得名字和姓氏_Php_Html_Ajax_Ms Access - Fatal编程技术网

Php 如何使用ajax脚本获得名字和姓氏

Php 如何使用ajax脚本获得名字和姓氏,php,html,ajax,ms-access,Php,Html,Ajax,Ms Access,我有一个ajax脚本,它从文本框Employee_Name获取帖子,并自动填充Employee_Number。当用户键入firstname时,它可以工作,但我希望当用户键入first和last name时,它仍然可以工作。有可能这样做吗 这里是insert.php <?php header('Content-Type: application/json'); try { $dbName = "C:\\inetpub\\wwwroot\\fpdb\\staffing.mdb";

我有一个ajax脚本,它从文本框Employee_Name获取帖子,并自动填充Employee_Number。当用户键入firstname时,它可以工作,但我希望当用户键入first和last name时,它仍然可以工作。有可能这样做吗

这里是insert.php

<?php



header('Content-Type: application/json');


try {

$dbName = "C:\\inetpub\\wwwroot\\fpdb\\staffing.mdb";
 $db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)};charset=UTF-8; DBQ=$dbName; Uid=; Pwd=;");

}
catch (PDOException $e) {
  echo $e->getMessage();
}
$Employee_Name=  trim($_POST["Employee_Name"]);  
$Employee_Lastname=  trim($_POST["Employee_Name"]);      
        $params = array( ':FIRSTNAME' => $Employee_Name, ':LASTNAME'=>$Employee_Lastname );

$query = $db->prepare("
    SELECT * FROM tbl_USERS
    WHERE FIRSTNAME=:FIRSTNAME and LASTNAME=:LASTNAME");

$query->execute($params);

$result = $query->fetch(PDO::FETCH_ASSOC);
$EMPLOYEE_NUMBER=trim('EMPLOYEE_NUMBER');
$rc= $result[$EMPLOYEE_NUMBER];

echo json_encode ($rc);

?>

使用php表单创建脚本

<head>
<link rel="stylesheet" type="text/css" href="<?php echo base_url();?>css/bootstrap.css">
<link rel="stylesheet" type="text/css" href="<?php echo base_url();?>css/view.css">
<script src="<?php echo base_url();?>js/view.js"></script>
<script src="<?php echo base_url();?>js/jquery-1.11.1.min.js"></script>
<script>


$(document).ready(function(){
      $("#Employee_Name").change(function(){
          var Employee_Name=$(this).val();
           if(Employee_Name != ''){
                  $.ajax({
                              type:"post",
                              url:"insert.php",
                              data:"Employee_Name="+Employee_Name,
                              datatype:"json",
                              success:function(data){ $("#Employee_Number").val(data);
                               $('#Employee_Number').css( "background-color","#B3CBD6"  ) 
                               $('#Employee_Number').animate({backgroundColor: "#ffffff"});
                               },
                                 error: function(response){
    alert("error scripting")    }

                                                           });
           }
           else{
               $("#Employee_Number").val("");
               }

          });
     });



</script>   

<link href="<?php echo base_url();?>assets/css/bootstrap.min.css" rel="stylesheet">

</head>
<?php $msg = $this->session->flashdata('msg'); if((isset($msg)) && (!empty($msg))) { ?>
                <div class="alert alert-success" >

                  <a href="#" class="close" data-dismiss="alert">&times;</a>
                <?php print_r($msg); ?>
                </div>
                <?php } ?>
                <?php $msg = $this->session->flashdata('msg1'); if((isset($msg)) && (!empty($msg))) { ?>
                <div class="alert alert-error" >

                  <a href="#" class="close" data-dismiss="alert">&times;</a>
                <?php print_r($msg); ?>
                </div>
                <?php } ?>
<body id="main_body" >


    <div id="form_container">


<form class="" action="<?php echo base_url();?>employee/insert_employee" method="post">

        <div class="form_description">
            <h2>Enter Data</h2>

        </div>                      
            <ul >

                    <li id="li_1" >
        <label class="description" for="element_1">Date Scheduled</label>
        <div>
            <input id="element_1" name="Date_Scheduled" class="element text medium" type="text" maxlength="255" value="" required/> 
        </div> 
        </li>       <li id="li_2" >
        <label class="description" for="element_2">Employee_Name </label>
        <div>
            <input id="Employee_Name" name="Employee_Name" class="element text medium" type="text" maxlength="255" value="" required/> 
        </div> 


        </li>       <li id="li_3" >
        <label class="description" for="element_3">Employee Number </label>
        <div>
            <input id="Employee_Number" name="Employee_Number" class="element text medium" type="text" maxlength="255" value="" required/> 
        </div> 
        </li>   


<li id="li_3" >
        <label class="description" for="element_3">Time Reported </label>
        <div>
            <input id="element_3" name="Time_Reported" class="element text medium" type="text" maxlength="255" value="" required/> 
        </div> 
        </li>   

<li id="li_6" >
        <label class="description" for="element_6">Reason </label>
        <div>
        <select class="element select medium" id="element_6" name="reason" required> 
            <option value="" selected="selected">Please Select..</option>
<option value="ILL PTO" >ILL PTO</option>
<option value="PTO" >PTO</option>
<option value="OTHER" >Other</option>

        </select>
        </div> 
        </li>

<li id="li_4" >
        <label class="description" for="element_4">Scheduled Area</label>
        <div>
        <select class="element select medium" id="element_4" name="Scheduled_Area" required> 
            <option value="" selected="selected">Please Select..</option>
<option value="Outbound" >Outbound</option>
<option value="Inbound" >Inbound</option>
<option value="Claims" >Claims</option>

        </select>
        </div> 
        </li>   


        <li id="li_6" >
        <label class="description" for="element_6">Contact </label>
        <div>
        <select class="element select medium" id="element_6" name="contact" required> 
            <option value="" selected="selected">Please Select..</option>
<option value="ILL PTO" >ILL PTO</option>
<option value="PTO" >PTO</option>
<option value="OTHER" >Other</option>

        </select>
        </div> 
        </li>


        <li id="li_6" >
        <label class="description" for="element_6">Approval </label>
        <div>
        <select class="element select medium" id="element_6" name="Approval" required> 
            <option value="" selected="selected">Please Select..</option>
<option value="ILL PTO" >ILL PTO</option>
<option value="PTO" >PTO</option>
<option value="OTHER" >Other</option>

        </select>
        </div> 
        </li>
          <input id="Complete" class="default" type="hidden" name="Complete" value="NO" />
            <input id="Status" class="default" type="hidden" name="Status" value="1" />

                    <li class="buttons">


                <input id="saveForm" class="button_text" type="submit" name="submit" value="Submit" />
        </li>
            </ul>
        </form> 


</body>
</html>


$(“#Employee_Name”)。更改将在第一个更改事件时触发,这意味着当输入元素失去焦点时。最好的解决方案是使用一个单独的姓氏字段,并且仅当两个字段都有内容时才触发ajax post请求。

如果在同一输入中键入名字和姓氏,则可以拆分字符串,然后使用了解名字和姓氏的逻辑进行分离:

使用Javascript:

$(document).ready(function(){
    $("#Employee_Name").change(function(){
    var txt = $(this).val();
    var nameArray = txt.split(",");
    var Employee_Name = nameArray[0];
    var Employee_LastName =  nameArray[1];
    if(Employee_Name != "" && Employee_LastName != ""){
        $.ajax({
            type:"post",
            url:"insert.php",
            data:"Employee_Name="+Employee_Name+"&Employee_Lastname="+Employee_LastName,
            datatype:"json",
            contentType: "application/x-www-form-urlencoded; charset=ISO-8859-1",
            success:function(data){
                $("#Employee_Number").val(data);
                $('#Employee_Number').css( "background-color","#B3CBD6"  ) 
                $('#Employee_Number').animate({backgroundColor: "#ffffff"});
            },
            error: function(response){
                alert("error scripting");
            }
        });
    }
    else{
        $("#Employee_Number").val("");
    }
    });
});
$Employee_Name = trim($_POST["Employee_Name"]);  
$Employee_Lastname = trim($_POST["Employee_Lastname"]);

echo json_encode(explode('.',$rc)[0]);
在PHP中:

$(document).ready(function(){
    $("#Employee_Name").change(function(){
    var txt = $(this).val();
    var nameArray = txt.split(",");
    var Employee_Name = nameArray[0];
    var Employee_LastName =  nameArray[1];
    if(Employee_Name != "" && Employee_LastName != ""){
        $.ajax({
            type:"post",
            url:"insert.php",
            data:"Employee_Name="+Employee_Name+"&Employee_Lastname="+Employee_LastName,
            datatype:"json",
            contentType: "application/x-www-form-urlencoded; charset=ISO-8859-1",
            success:function(data){
                $("#Employee_Number").val(data);
                $('#Employee_Number').css( "background-color","#B3CBD6"  ) 
                $('#Employee_Number').animate({backgroundColor: "#ffffff"});
            },
            error: function(response){
                alert("error scripting");
            }
        });
    }
    else{
        $("#Employee_Number").val("");
    }
    });
});
$Employee_Name = trim($_POST["Employee_Name"]);  
$Employee_Lastname = trim($_POST["Employee_Lastname"]);

echo json_encode(explode('.',$rc)[0]);

如果我把它作为一个下拉列表,它会触发事件吗?但是我必须创建一个下拉列表,将firstname和lastname放在一起作为一个字段。这是一个很好的方法,希望它真的能工作。你可以用值测试写警报,例如:
试试{Employee_Name=$(this).val().split(“”)[0];}catch(ex){Employee_Name=$(this.val();}警报(Employee_Name)我明天会再试一次,让你知道它是如何提醒名字的。姓氏表示它未定义