Php 如何使用ajax脚本获得名字和姓氏
我有一个ajax脚本,它从文本框Employee_Name获取帖子,并自动填充Employee_Number。当用户键入firstname时,它可以工作,但我希望当用户键入first和last name时,它仍然可以工作。有可能这样做吗 这里是insert.phpPhp 如何使用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";
<?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">×</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">×</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)代码>我明天会再试一次,让你知道它是如何提醒名字的。姓氏表示它未定义