Итак, я недавно создал этот небольшой скрипт, который просматривает мою базу данных клиентов, когда пользователь начинает вводить текст в определенном поле.
Это позволяет им привязать запись к другой записи, чтобы облегчить ее в будущем.
Однако, когда появляется искомый клиент, он должен щелкнуть по имени, после того как он щелкнет по имени, он заполнит поле.
Однако я должен быть в состоянии определить, на какого клиента он нажал, чтобы я мог сохранить идентификатор клиента в базе данных на будущее.
Пока что скрипт, который я получил, будет отображать 3 столбца, клиенты firstName
, lastName
и ID
.Как можно отделить идентификатор от firstName
и lastName
, чтобы сохранить его в базе данных?
Это мой поисковый код PHP ...
try {
$customerConn = new PDO('mysql:host=DATABASE HOST NAME HERE;dbname=DATABASE NAME HERE;charset=utf8', 'USERNAME', 'PASSWORD');
// echo 'client version: ', $conn->getAttribute(PDO::ATTR_CLIENT_VERSION), "\n";
// echo 'server version: ', $conn->getAttribute(PDO::ATTR_SERVER_VERSION), "\n";
$customerConn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$customerConn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
}
catch(PDOException $err) {
var_dump($err->getMessage());
die('...');
}
// Attempt search query execution
try{
if(isset($_REQUEST["term"])){
// create prepared statement
$sql = "SELECT * FROM customerLeads WHERE lastName LIKE :term";
$stmt = $customerConn->prepare($sql);
$term = $_REQUEST["term"] . '%';
// bind parameters to statement
$stmt->bindParam(":term", $term);
// execute the prepared statement
$stmt->execute();
if($stmt->rowCount() > 0){
while($row = $stmt->fetch()){
echo "<p>".$row['firstName']." ".$row["lastName"]." - ".$row['customerID']."</p>";
}
} else{
echo "<p>No matches found</p>";
}
}
} catch(PDOException $e){
die("ERROR: Could not able to execute $sql. " . $e->getMessage());
}
// Close statement
unset($stmt);
// Close connection
unset($customerConn);
Также я заменил детали базы данных только для безопасности!
Редактировать Здесьэто JavaScript, который у меня есть на странице
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.search-box input[type="text"]').on("keyup input", function(){
/* Get input value on change */
var inputVal = $(this).val();
var resultDropdown = $(this).siblings(".result");
if(inputVal.length){
$.get("../../scripts/customerSearch.php", {term: inputVal}).done(function(data){
// Display the returned data in browser
resultDropdown.html(data);
});
} else{
resultDropdown.empty();
}
});
// Set search input value on click of result item
$(document).on("click", ".result p", function(){
$(this).parents(".search-box").find('input[type="text"]').val($(this).text());
$(this).parent(".result").empty();
});
});
</script>
, а вот соответствующий HTML
<div class="form-group search-box">
<label>Customer Name</label>
<input type="text" placeholder="Search Customer" autocomplete="off" name="customerName">
<div class="result"></div>
</div> <!-- end .form-group -->