Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Поиск данных по БД (https://javascript.ru/forum/events/48712-poisk-dannykh-po-bd.html)

Batyabest 14.07.2014 10:43

Поиск данных по БД
 
Здравствуйте.
Интересует такая штука: человек вводит номер своего договора в модальном окне и жмет найти, в этом же окне отображается результат.

Административная часть данного функционала работает, менеджер заносит, удаляет и редактирует данные в БД.

Возможно ли сделать поиск по БД через JS, Ajax, Jquery, чтобы все работало без перезагрузки либо переадрессации.

На данный момент просто происходит проверка введенного числа на количество символов. если оно равно 8, то выводит Выполняется, если не равно - такого номера не найдено.

Объясните пожалуйста, что нужно изменить в коде, чтобы все работало как нужно.

if ($action == "validate") {   
        //echo '{"result":1,"errors":["Message1", "Message2"]}';
        if (isset($_SESSION['captcha_keystring'], $_POST['captcha'])
        && $_SESSION['captcha_keystring'] !=  $_POST['captcha'])
                die('{"result":0,"errors":["Код безопасности указан неправильно."]}');
               
        if ($id == 'status') {
                $number = htmlspecialchars(strip_tags($_POST['number']));
                if (is_numeric($number) && strlen($number) == 8)
                        die('{"action":"update","html":"<div class=\"agreement-number\">Номер договора: <b>' . $number . '</b></div><div  class=\"agreement-status\">Статус заказа: <b>выполняется</b></div>"}');
                die('{"result":0,"errors":["Договор с указанным номером не найден."]}');
               
        }
       
        die('{"result":1}');    
}

Batyabest 14.07.2014 12:32

Сама форма поиска такая.
<div class="x-form" style="display: none">
	<div class="x-form-header">
		<div class="x-form-title" data-height="220">Проверка статуса заказа</div>
	</div>
	<div class="x-form-content">
		<div class="x-form-loading" style="display: none"></div>
		<div class="x-form-message-box">
			<div class="x-form-message" style="display: none"></div>
		</div>
<form  method='post' action=''> 
	<label>Введите номер лицевого счета</label> 
	<input type='text' name='Nsc'> 
	<input type='submit' name='btn' value='OK' > 
</form>
	</div>
</div>


Обработчик PHP такой:
if (isset($_POST['Nsc'])) {
    $result = mysql_query("SELECT * FROM `zakaz` WHERE `number`='".intval($_POST['Nsc'])."' LIMIT 1") or die("Невозможно выполнить запрос:  " . mysql_error());
    if (mysql_num_rows($result) == 1) {
        $row = mysql_fetch_array($result);
        echo 'ФИО ' . $row['id'] . '<br>';
        echo 'Номер лицевого счёта ' . $row['number'] . '<br>';
        echo 'Адрес ' . $row['info'] . '<br>';
        echo 'Номер организации ' . $row['status'] . '<br>';
    }
else {
	echo 'Такой номер договора не найден.';
}
    }


Как мне все сделать на js чтобы все в том же окне модальном выводилось без перезагрузки?

Batyabest 14.07.2014 13:20

Все сделал с помощью Ajax, а как прикрутить капчу?


Часовой пояс GMT +3, время: 07:10.