JQuery — Проверка нескольких полей ввода с AJAX / PHP на Mysql

я создал форму с несколькими полями, ввод, выбор, поле и т. д.
У меня есть 2 поля, которые должны быть проверены agaist DB. Если существует, показать некоторые детали, если не отображать некоторые дополнительные поля ввода для добавления в БД.

Пример: Марка, модель, номерной знак.
ЕСЛИ номерной знак существует -> Honda Accord
ЕСЛИ НЕТ -> вход для добавления.

$(document).ready(function(){
$("licplate").change(function(){
var lp = $("licplate").val();
if(lp.length <= 8) { //my country have a 8 digit plate
$("#stat").html('<image> Verifing');
$.ajax({
type: "POST",
url: "check.php",
data: "licplate="+lp,
success: function(msg) {
$("#stat"),ajaxComplete(function(event,request,settings){
if(msg=='OK'){
$(this).html('message to ignore');
} else {
$(this).html(msg);
}

В моем check.php я подключаюсь к БД, проверяю и возвращаю данные. Если существует, вернитесь

echo "<span class="msg">$row_sql_chk['make']." - ".$row_sql_chk['model']</span>";

если не

<li><label>Make</label><input id="make" name="make" type="text" />
<li><label>Modele</label><input id="model" name="model" type="text" />

Это работает очень хорошо, однако у меня есть новая проверка, чтобы сделать в другом поле ввода в форме.
Я должен проверить драйвер таким же образом … это выход из имени и адреса шоу «driverlicense», если нет полей для его вставки.
Я сделал тот же код, изменил имена полей, имя div и т. Д.
И работать просто отлично.

Но потом возникла проблема … если оба поля не существуют.
Я заполняю поля (марка, модель) и при проверке драйвера, если он не существует, очищает верхние поля. После этого, если я заполняю (снова) все поля (марка, модель, имя ..) работает так, как ожидалось.
Так как же я могу сделать проверку 2-го поля без очистки другого?
ТКС

0

Решение

Файл checkcom.php (файл check.com практически совпадает, разница находится в таблице для тестирования.)

<?php
if(isset($_POST['comand']))
{
$comand = $_POST['comand'];

$dbHost = 'localhost';
$dbUsername = 'name';
$dbPassword = 'XXXXXXX';
$dbDatabase = 'MYDB';

$db = mysql_connect($dbHost, $dbUsername, $dbPassword) or die ("Unable to connect to Database Server.");
mysql_select_db ($dbDatabase, $db) or die ("Could not select database.");
$sql_check = mysql_query("select nome, licenca,  from pilotos where licenca='".$comand."'") or die(mysql_error());
// in check.com is "select matricula, marca ,modelo from veiculos where matricula='".$mat."'") or die(mysql_error());

$row_sql_check = mysql_fetch_assoc($sql_check);
$totalRows_sql_check = mysql_num_rows($row_sql_check);
if(mysql_num_rows($sql_check))
{
echo '<font color="#003366"> <STRONG>'.$row_sql_check['nome'].'</STRONG> </font>';

}
else
{
echo '<div class="rectang">
<li><label>Nome:</label> <input id="nome_pil" name="nome_pil" type="text" title="Nome Piloto" required/></li>
<li><label>Morada:</label> <input id="morada_pil" name="morada_pil" type="text" title="Morada Piloto"/><br /></li>
<li><label>Localidade:</label> <input id="local_pil" name="local_pil" type="text" title="Localidade Piloto"/><br /></li>

<font color="#003366"> A licen&ccedil;a <STRONG>'.$comand.'</STRONG> N&Atilde;O est&aacute; registada na tabela. Vai ser adicionado o registo provis&oacute;rio.</font>
</div>';
}
}

?>

—- Скрипт —-

<SCRIPT type="text/javascript">
pic1 = new Image(16, 16);
pic1.src = "images/loader.gif";
$(document).ready(function(){
$("#licplate").change(function(){
var lp = $("#licplate").val();
if(lp.length >= 4)  {
$("#status").html('<img src="https://web-answers.ru/wp-content/uploads/2019/03/loader.gif" align="absmiddle">&nbsp;A verificar...');
$.ajax({
type: "POST",
url: "check.php",
data: "licplate="+ lp,
success: function(msg){
$("#status").ajaxComplete(function(event, request, settings){
if(msg == 'OK'){
$("#licplate").removeClass('object_error');
$("#licplate").addClass("object_ok");
$(this).html('Não existe&nbsp;<img src="https://web-answers.ru/wp-content/uploads/2019/03/alerta.gif" align="absmiddle">');
}
else {
$("#licplate").removeClass('object_ok');
$("#licplate").addClass("object_error");
$(this).html(msg);
}
});
}
});
}
else{
$("#status").html('<font color="red">A matr&iacute;cula tem de ter pelo menos <strong>4</strong> caracteres.</font>');
$("#licplate").removeClass('object_ok');
$("#licplate").addClass("object_error");
}

});

<!--  -- aqui muda para a licença de condutor

$("#comand").change(function(){
var cmd = $("#comand").val();
if(cmd.length >= 6){
$("#status1").html('<img src="https://web-answers.ru/wp-content/uploads/2019/03/loader.gif" align="absmiddle">&nbsp;A verificar...');
$.ajax({
type: "POST",
url: "checkcom.php",
data: "comand="+ cmd,
success: function(msg1){
$("#status1").ajaxComplete(function(event, request, settings){
if(msg1 == 'OK'){
$("#comand").removeClass('object_error1');
$("#comand").addClass("object_ok1");
$(this).html('Não existe&nbsp;<img src="https://web-answers.ru/wp-content/uploads/2019/03/alerta.gif" align="absmiddle">');
}
else
{
$("#comand").removeClass('object_ok1');
$("#comand").addClass("object_error1");
$(this).html(msg1);
}
});
}
});
}
else
{
$("#status1").html('<font color="red">A Licença de piloto tem de ter pelo menos <strong>6</strong> caracteres.</font>');
$("#comand").removeClass('object_ok1');
$("#comand").addClass("object_error1");
}

});});

//-->
function tratamat(mat)
{
var tipo = mat.substr(3, 1);
switch(tipo) {
case "U":
document.getElementById("tipo_veic").value="DP";
break;
case "u":
document.getElementById("tipo_veic").value="DP";
break;
case "H":
document.getElementById("tipo_veic").value="GT";
break;
case "h":
document.getElementById("tipo_veic").value="GT";
break;
case "A":
document.getElementById("tipo_veic").value="SR";
break;
case "a":
document.getElementById("tipo_veic").value="SR";
break;

}
}

</SCRIPT>

И форма HTML

<form action="<?php echo $editFormAction; ?>" method="POST" name="entrada" class="formgeral" id="formgeral">
<ul>
<li><label>Matricula</label><input id="licplate" size="20" type="text" name="licplate" title="Matricula" style="text-transform:uppercase;" onBlur="javascript:tratamat(this.value)"><br>
<div id="status"> </div></li>
<li>

<label>Tipo Veiculo</label><input type="text" name="tipo_veic" id="tipo_veic" title="Tipo de Aeronave" style="text-transform:uppercase;">
</li>
(...)
<li><label>Licença</label><input  id="comand" name="comand" type="text" size="15" maxlength="15"><div id="status1"> </div></li>

(…)

Этого достаточно?

0

Другие решения

решена

Добавьте валидацию в поле для лицензирования «undefined»

if(msg != 'ERR'){
$("#licplate").removeClass('object_error');
$("#licplate").addClass("object_ok");
var lic = $("#matricula"),val(); // assing the value of 'new' input
if(typeof lic === 'undefined') { // verify the value of 'new' input
$(this).html(msg);
}
}

и это работает !!

вы, ребята, потрясающие … не ответил, так что я могу использовать свой лучший инструмент .. мой мозг! : D

0

По вопросам рекламы [email protected]