Ticketa
Registered
JQuery Autocomplete. Ако елементът не може да бъде намерен, да се покаже „Натиснете Enter, за да вмъкнете в автодовършване“?
Правя нещо като комбо с автоматичен допинг.
Така че, когато потребителят въведе заявка, която няма опции за автоматично довършване, т.е. "ааа", искам автодовършването да се появи и да се покаже "Натиснете " Enter ", за да създадете маркер за " aaa "."
Не мога да намеря нищо по тази тема.
В момента кода, който ползвам (който само автоматично довършва маркера изглежда така:
add.php
това е PHP частта.
Към момента си работи безупречно - поне в мойте очи.
Въпроса е, че искам когато PHP върне нулев резултат т.е. нищо не е открило , да каже на jQuery -> хей искаш ли да добавиш този маркер?
И да изкочи прозорец за добавяне на нов маркер , но така че да не се "презарежда" страницата и да се изгубят до момента въведените данни
Правя нещо като комбо с автоматичен допинг.
Така че, когато потребителят въведе заявка, която няма опции за автоматично довършване, т.е. "ааа", искам автодовършването да се появи и да се покаже "Натиснете " Enter ", за да създадете маркер за " aaa "."
Не мога да намеря нищо по тази тема.
В момента кода, който ползвам (който само автоматично довършва маркера изглежда така:
add.php
HTML:
<div class="form-group">
<label for="inputEmail3" class="col-sm-3 control-label">Търсене на маркер:</label>
<div class="col-sm-9">
<input type="text" id="ingredient-search" class="form-control">
<span class="help-text">Търсене на маркер за добавяне.</span>
</div>
</div>
<div class="form-group">
<label for="inputEmail3" class="col-md-3 control-label">Маркери</label>
<div class="col-sm-9" id="ingredient-area">
</div>
</div>
<script type="text/javascript">
jQuery(document).ready(function($) { // jQuery Start
$('#ingredient-search').autocomplete({
delay : 300,
minLength: 1,
source: function (request, response) {
$.ajax({
type: "GET",
url: "/get_tags.php",
data: {
query : request.term
},
dataType: 'JSON',
success: function (msg) {
response(msg);
}
});
},
//console.info('ui.item.value = ' + ui.item.value);
select: function(event, ui) {
console.log('ok');
event.preventDefault();
$('#ingredient-area').append('<input type="hidden" name="ingredientid_'+ui.item.value+'" id="ingredient_id_'+ui.item.value+'" value="'+ui.item.value+'">');
$('#ingredient-area').append('<div class="tag-label" id="ingredient-label-'+ui.item.value+'"><p>'+ui.item.label+'</p><p><input type="text" name="ingredient_amount_'+ui.item.value+'" value="1" size="10"> <input type="checkbox" name="ingredient_plural_'+ui.item.value+'" value="1"> множествено число? <input type="button" class="btn btn-danger btn-xs" value="X" onclick="delete_ingredient('+ui.item.value+')"></p></div>');
}
});
});
function delete_ingredient(id)
{
$('#ingredientid_'+id).remove();
$('#ingredient-label-'+id).remove();
}
</script>
това е PHP частта.
Код:
$name = isset($_GET['query']) ? addslashes($_GET['query']) : "not found";
$sql = query("select `name` as `label`, `ing_id` as `value` from `news` WHERE `name` like '%".($name)."%' ");
$json = array();
if(mysqli_num_rows($sql) > 0){
while($row=mysqli_fetch_assoc($sql)){
$json[]= $row;
}
}
echo json_encode($json);
Към момента си работи безупречно - поне в мойте очи.
Въпроса е, че искам когато PHP върне нулев резултат т.е. нищо не е открило , да каже на jQuery -> хей искаш ли да добавиш този маркер?
И да изкочи прозорец за добавяне на нов маркер , но така че да не се "презарежда" страницата и да се изгубят до момента въведените данни