Просмотр полной версии : автозаполнение input зависимо от другого
Здравствуйте, как можно автозаполнить input (proc_sn) после заполнение input (proc_inv)
INDEX.PHP
<label color="blue">-----ПРОЦЕССОР----------</label></br>
<label>Модель</label>
<select name="proc_model" id="proc_model" class="form-control" >
<option></option>
<?php
$stmt = $DB_con->prepare("SELECT DISTINCT name_comp FROM comp");
$stmt->execute();
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
?>
<option value="<?php echo $row['name_comp']; ?>"><?php echo $row['name_comp']; ?></option>
<?php
}
?>
</select>
<label>Инвентарный номер</label>
<input type="text" name="proc_inv" id="proc_inv" class="form-control" >
<label>Серийный номер</label>
<input type="text" name="proc_sn" id="proc_sn" class="form-control" >
<script type="text/javascript" language="javascript" >
$(document).ready(function(){
$(document).ready(function(){
$('#proc_inv').typeahead({
source: function(query, result)
{
$.ajax({
url:"comp/inv_comp.php",
method:"POST",
data:{query:query},
dataType:"json",
success:function(data)
{
result($.map(data, function(item){
return item;
}));
}
})
}
});
});
});
</script>
inv_comp.php
<?PHP
$connect = mysqli_connect("localhost", "root", "", "inver");
$request = mysqli_real_escape_string($connect, $_POST["query"]);
$query = "
SELECT * FROM comp WHERE inv_comp LIKE '".$request."%'
";
$result = mysqli_query($connect, $query);
$data = array();
if(mysqli_num_rows($result) > 0)
{
while($row = mysqli_fetch_assoc($result))
{
$data[] = $row["inv_comp"];
}
echo json_encode($data);
}
?>
Вложенные
$(document).ready(function(){...}
это уже явно перебор! :nono:
как можно автозаполнить input (proc_sn) после заполнение input (proc_inv)
Например сделать это внутри обработчика
success:function(data){...}
Вложенные
это уже явно перебор! :nono:
:write:
Например сделать это внутри обработчика
вот это не мог сделать :cray:
вот это не мог сделать
Показал бы как делал...
Показал бы как делал...
если не затруднить
texasx, я говорю тебе:
- Покажи как ты делал, дабы понять чего у тебя не получается.
texasx, я говорю тебе:
- Покажи как ты делал, дабы понять чего у тебя не получается.
Здравствуйте
http://savepic.ru/14633436.jpg
После ввода значение в input (proc_inv) чтобы автоматом заполнялся значение input (proc_sn) с таблицы comp (столбец sn_comp) и select (proc_model) с столбика name_comp
То есть, Инвентарный номер, это не уникальное значение?
То есть, Инвентарный номер, это не уникальное значение?
нет, они уникальные и серийные, а name_comp повторяются
может сюда как та, но не получается
<script type="text/javascript">
//index.php
$(document).ready(function()
{
$(".proc_inv").change(function()
{
var id=$(this).val();
var dataString = 'id='+ id;
$.ajax
({
type: "POST",
url: "get_proc_sn.php",
data: dataString,
cache: false,
success: function(html)
{
$(".proc_sn").html(html);
$(".proc_model").html(html);
}
});
});
});
</script>
<?php
//get_prog_sn.php
include('dbconfig.php');
if($_POST['id'])
{
$id=$_POST['id'];
$stmt = $DB_con->prepare("SELECT * FROM comp WHERE inv_comp=:id");
$stmt->execute(array(':id' => $id));
?><option selected="selected">Select City :</option><?php
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
?>
<option value="<?php echo $row['name_comp']; ?>"><?php echo $row['name_comp']; ?></option>
<input value="<?php echo $row['sn_comp']; ?>">
<?php
}
}
?>
нет, они уникальные и серийные, а name_comp повторяются
Если они уникальны, то это что такое?
SELECT * FROM comp WHERE inv_comp LIKE '".$request."%'
......
while($row = mysqli_fetch_assoc($result))
эти динамические связанные списки были
эти динамические связанные списки были
Это как?
на данный момент не использую связанные списки
может сюда как та, но не получается
<script type="text/javascript">
//index.php
$(document).ready(function()
{
$(".proc_inv").change(function()
{
var id=$(this).val();
var dataString = 'id='+ id;
$.ajax
({
type: "POST",
url: "get_proc_sn.php",
data: dataString,
cache: false,
success: function(html)
{
$(".proc_sn").html(html);
$(".proc_model").html(html);
}
});
});
});
</script>
Нужно все делать относительно обрабатываемого элемента... ;)
Если я правильно понял твою структуру, что-то такое нужно
$(document).ready(function()
{
$(".proc_inv").change(function()
{
var id=$(this).val();
var parent=$(this).parents('tr').eq(0);
var dataString = 'id='+ id;
$.ajax
({
type: "POST",
url: "get_proc_sn.php",
data: dataString,
cache: false,
success: function(html)
{
parent.find(".proc_sn").html(html);
parent.find(".proc_model").html(html);
}
});
});
});
texasx,
вы чужой код под себя пытаетесь изменить или это ваше изобретение?
Допустим в базе есть записи моделей процессоров, инвентарные и серийные их номера. Без учета идентификатора записей этой таблицы, который уникален, знаем, что инвентарный номер также уникален.
Запросом индексного файла из выборки уникальных значений моделей процессоров строится их список. Для чего?
Пусть зная начальное из инвентарного номера ищем что-то в базе, тогда запрос WHERE field LIKE понятен, и возврат набора значений тоже. Но в таком случае этот запрос не для того чтобы как вы просите "заполнил поле такое, такое да еще и список". Этот список для выбора в нем инвентарного номера, после которого запрос в базу уже по этому номеру вернет запись: модель, серийный номер. Инвентарный уже выбран из писка, серийный получили и в поле (зачем это правда нужно не понять), а в уже построенном списке можно выбрать опцию соответствующей модели, о каком заполнении списка может идти речь?
ksa, что то не получается, или не так делаю ((
<?php
include_once 'dbconfig.php';
?>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Данные по технике</title>
<script type="text/javascript">
//index.php
$(document).ready(function()
{
$(".proc_inv").change(function()
{
var id=$(this).val();
var parent=$(this).parents('tr').eq(0);
var dataString = 'id='+ id;
$.ajax
({
type: "POST",
url: "get_proc_sn.php",
data: dataString,
cache: false,
success: function(html)
{
parent.find(".proc_sn").html(html);
parent.find(".proc_model").html(html);
}
});
});
});
</script>
</head>
<body>
<label>Модель</label>
<select name="proc_model" id="proc_model">
<option></option>
<?php
$stmt = $DB_con->prepare("SELECT DISTINCT name_comp FROM comp");
$stmt->execute();
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
?>
<option value="<?php echo $row['id']; ?>"><?php echo $row['name_comp']; ?></option>
<?php
}
?>
</select>
<label>Инвентарный номер</label>
<input type="text" name="proc_inv" id="proc_inv" class="proc_inv">
<label>Серийный номер</label>
<input type="text" name="proc_sn" id="proc_sn">
</body>
</html>
<?php
//get_prog_sn.php
include('dbconfig.php');
if($_POST['id'])
{
$id=$_POST['id'];
$stmt = $DB_con->prepare("SELECT * FROM comp WHERE proc_inv=:id");
$stmt->execute(array(':id' => $id));
?><
<?php
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
?>
<option value="<?php echo $row['id']; ?>"><?php echo $row['name_comp']; ?></option>
<input value="<?php echo $row['sn_comp']; ?>">
<?php
}
}
?>
limas, да так и есть... изменяю другой код под свою, так как первый код у меня по php+ajax
что то не получается, или не так делаю
На картинке у тебя таблица была... И все инпуты были в строке.
Кто общий "ближайший" родитель у этих инпутов?
Вот его и нужно указать перед вызовом запроса.
У твоих примеров нет класса proc_model... :no:
texasx,
Запросом индексного файла из выборки уникальных значений моделей процессоров строится их список. Для чего?
есть модели которые нет списке инвен. номера (списанные и т.д.)
когда такие встречаются я просто пишу место инвентарного списан
изменяю другой код под свою, так как первый код у меня по php+ajax
Значит надо писать свое, а то что представлено, и попытки получения совсем не того что требуется, и не понятно во что вставляется и зачем, никуда не годится.
У твоих примеров нет класса proc_model... :no:
добавил класс для моделей и серийника
<?php
include_once 'dbconfig.php';
?>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Данные по технике</title>
<script type="text/javascript">
//index.php
$(document).ready(function()
{
$(".proc_inv").change(function()
{
var id=$(this).val();
var parent=$(this).parents('tr').eq(0);
var dataString = 'id='+ id;
$.ajax
({
type: "POST",
url: "get_proc_sn.php",
data: dataString,
cache: false,
success: function(html)
{
parent.find(".proc_sn").html(html);
parent.find(".proc_model").html(html);
}
});
});
});
</script>
</head>
<body>
<div class="modal">
<label>Модель</label>
<select name="proc_model" id="proc_model" class="proc_model">
<option></option>
<?php
$stmt = $DB_con->prepare("SELECT DISTINCT name_comp FROM comp");
$stmt->execute();
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
?>
<option value="<?php echo $row['id']; ?>"><?php echo $row['name_comp']; ?></option>
<?php
}
?>
</select>
<label>Инвентарный номер</label>
<input type="text" name="proc_inv" id="proc_inv" class="proc_inv">
<label>Серийный номер</label>
<input type="text" name="proc_sn" id="proc_sn" class="proc_sn">
</div>
</body>
</html>
родитель у этих инпутов?
<div class="modal"> такой подойдет?
Значит надо писать свое, а то что представлено, и попытки получения совсем не того что требуется, и не понятно во что вставляется и зачем, никуда не годится.
ну видите я вообще новичок по javascript, php
ну видите я вообще новичок по javascript, php
Все мы родились не в штанишках. Это не проблема. Не проблема со временем выучить и язык (мы же не сразу говорить можем). Но если не научится представлять задачу в целом и ее отдельные узлы, понимать и находить ее решение от общего к частному, то знание языка не поможет.
Вы не с того конца взялись за решение задачи, и что более пагубно, это изменяете чужой код, который совсем иную задачу решал, под свою задачу.
Ярким примером связанных списков можно привести например получение адреса. Сначала выбирая регион, получая список его областей, выбирая в нем область, получая список ее городов, и т.д.
Чтобы эта задача была решаема, данные в базе не просто валяются, а хранятся в ней определенной структурой, которая описывается связанными таблицами.
Чтобы решить вашу задачу, сначала нужно определить структуру ваших данных, а это можно сделать только если понимать как эти данные связаны между собой. А понимая эти связи, значит понимаем что мы хотим получить запросами клиента. А зная что мы хотим получить, мы делаем соответствующие запросы и соответственно распоряжаемся данными вернувшие сервером.
Из того что у вас написано вообще не понятно что вы хотите получить от сервера и зачем.
<div class="modal"> такой подойдет?
Любой подойдет...
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot