while($row = $result->fetch_assoc()) {
$lost_time_desc = sanitize($row['lost_time_desc']);
$lostId = sanitize($row['lost_time_reason_id']);
echo "<li data-id='".$lostId."'>" . $lost_time_desc. "</li>";
}
$(function() {
$("input").keyup(function() {
// GET A REFERENCE TO THE <input> THAT TRIGGERED THE EVENT
var jqo = $(this);
// GET THE VALUE
var input = jqo.val();
jqo.addClass('loader').prop({disabled: false});
// FIND THE result <div> FOR THIS <input>
var parent = jqo.closest('div');
var result = parent.find('.result');
if (input.length > 3) {
// jqo.addClass('loader').prop({disabled: true});
// GET DATA FROM SERVER
$.ajax({
type: 'POST',
url: 'lost-units-search.php',
data: {
name: input
}
})
// .success IS ON ITS WAY OUT
// I PREFER promise INTERFACE
.done(function(data) {
// data IS PLAIN HTML SO ADD IT TO OUR
// result WINDOW
result.html(data);
result.data('input', jqo);
jqo.removeClass('loader').prop({disabled: false});
})
}
// THE REST IS THE SAME
if (input.length < 1) {
result.html("");
jqo.removeClass('loader').prop({disabled: false});
}
});
$('.result').on('click', function(evt) {
$(this).data('input').val(evt.target.textContent);
this.textContent = '';
});
});
var $lostId = $(this).data('lost-id');
<div class="form-group">
<input type="text" name="name[]" autocomplete="off">
<ul class="result"></ul>
</div>
<div class="form-group">
<input type="text" name="name[]" autocomplete="off">
<input type="hidden" name="lostId[]">
<ul class="result"></ul>
</div>
to put a hidden field in the echoed out forms?Sure, that's a sensible thing. I use exactly that design in the show/hide password logic in this article. See Example #3: Like Apple Devices, ...
$searchTxt = isset($_POST['searchIndex']) ? $_POST['searchIndex'] : false;
if ($searchTxt) {
$query = "INSERT INTO tblSearches (searchID) SELECT id FROM tblSearchValues WHERE searchTerm = '{$searchTxt}'";
...
}
$.ajax({
type: 'POST',
url: 'lost-units-search.php',
data: {
name: input
}
})
// .success IS ON ITS WAY OUT
// I PREFER promise INTERFACE
.done(function(data) {
// data IS PLAIN HTML SO ADD IT TO OUR
// result WINDOW
result.html(data);
result.data('input', jqo);
var $lostId = // here is the problem?
console.log(lostId);
<div class="form-group">
<input type="text" name="name[]" autocomplete="off">
<input type="hidden" name="lostId[]">
<ul class="result"></ul>
</div>
echo "<li data-lost-id='".$lostId."'>" . $lost_time_desc. "</li>";
var $lostId = $(this).data('lost-id');
var lostId = $(data).attr('data-lost-id');
if(isset($_POST['submit']) && isset($_SESSION['last_id'])) {
foreach($_POST['name'] as $reasons) {
if(empty($reasons)) {
echo error_message("Please complete all fields");
break;
} else {
$stmt = $link->prepare("INSERT INTO `lost_time` (`ps_id`, `reason`) VALUES (?, ?)");
$stmt->bind_param("ii", $_SESSION['last_id'], $reasons);
$stmt->execute();
$stmt->close();
}
}
}
$stmt = $link->prepare("INSERT INTO `lost_time` (`ps_id`, `reason`) SELECT `lost_time_reason_id` FROM `lost_time_reasons` WHERE `` VALUES (?, ?)");
$_SESSION['last_id'] = $link->insert_id;
if(isset($_POST['name'])) {
$search = "{$_POST['name']}%";
$stmt = $link->prepare("SELECT `lost_time_desc`, `lost_time_reason_id` FROM `lost_time_reasons` WHERE `lost_time_desc` LIKE ?");
$stmt->bind_param("s", $search);
$stmt->execute();
$result = $stmt->get_result();
$numRows = $result->num_rows;
if($numRows > 0) {
while($row = $result->fetch_assoc()) {
$lost_time_desc = sanitize($row['lost_time_desc']);
$lostId = sanitize($row['lost_time_reason_id']);
echo "<li data-lost-id='".$lostId."'>" . $lost_time_desc. "</li>";
}
} else {
echo "<li>Other</li>";
}
$stmt->close();
}
if(isset($_POST['submit']) && isset($_SESSION['last_id'])) {
foreach($_POST['name'] as $reasons) {
if(empty($reasons)) {
echo error_message("Please complete all fields");
break;
} else {
$stmt = $link->prepare("INSERT INTO `lost_time` (`ps_id`, `reason`) SELECT ?, `lost_time_reason_id` FROM `lost_time_reasons` WHERE `lost_time_desc` = ?");
$stmt->bind_param("ii", $_SESSION['last_id'], $reasons);
$stmt->execute();
$stmt->close();
break;
}
}
}
$stmt->bind_param("ds", $ps_id, $search);
to $stmt->bind_param("ii", $_SESSION['last_id'], $reasons);