powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как правильно разместить AJAX живой поиск в MVC без ООП
11 сообщений из 11, страница 1 из 1
Как правильно разместить AJAX живой поиск в MVC без ООП
    #39199513
shvedovatb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, уважаемые эксперты.
На сайте реализована MVC без ООП, через функции.
Структура такая: в index.php подключаются config.php и controller.php.
В config.php подключение к БД.
В controller.php подключается model.php и через case нужный вид.
Есть вид stat.php в нем input, по вводу в который запускается $.ajax и возвращает фамилий, соответствующие введенным буквам.
Проблема в следующем. Если обработчик поместить в отдельный файл и там прописать весь код (подключение к базе данных, запрос, обработка запроса), то все работает.
А если разнести код в controller.php и model.php то $.ajax возвращает ошибку, т.е. срабатывает не success, а errror. Похоже, что не видно соединения с БД.
Помогите, пожалуйста, разобраться как правильно распределить код.
Я делала так:
stat.php
Код: php
1.
2.
3.
4.
5.
6.
<form method="get">  
...
        <input type="text" id="keyword" placeholder="Enter keyword">
        <select name="staff" id="content" size="5"></select>
...
</form>


workscripts.js
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
$(document).ready(function() {
$('#keyword').on('input', function() {
	var searchKeyword = $(this).val();
	if (searchKeyword.length >= 1) {		
		$.ajax({
			url:"controller/controller.php",
			type:"GET",
			dataType:"json",
			data:({ keywords: searchKeyword }),
			error:function(p, q, r) {alert(p+q+r)},
			success:function(data){
				if ($('select#content').css('display')=='none') {$('select#content').show()};
				$('select#content').empty()
				$.each(data, function() {
					$('select#content').append($('<option value="' + this.staff_id + '">' + this.f_name +' '+this.s_name+' '+this.l_name+' '+this.dep_name+'</option>'));
				});
			}	
		});
	}
});	
});


controller.php
Код: php
1.
2.
3.
4.
5.
if (!empty($_GET['keywords'])) {
	$keywords = mysql_real_escape_string(strip_tags($_GET['keywords']));
	$arr=staff_search($keywords);
	echo json_encode($arr);
}


model.php
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
function staff_search($keywords){
	$sql = "SELECT ac_staff.staff_id, f_name, s_name, l_name, dep_name 
	FROM ac_staff, ac_staff_dep, department 
	WHERE f_name like('".$keywords."%')
	and ac_staff.staff_id=ac_staff_dep.staff_id
	and ac_staff_dep.dep_id=department.dep_id";
	$result = mysql_query($sql) or die(mysql_error());
	if (mysql_num_rows($result) > 0) {
		while ($row = mysql_fetch_assoc($result)) {
			$arr[] = $row;
		}
	}
	return $arr;
}


Буду благодарна за любую помощь.
...
Рейтинг: 0 / 0
Как правильно разместить AJAX живой поиск в MVC без ООП
    #39199575
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"MVC без ООП" жуть какая.
в js
Код: javascript
1.
2.
3.
4.
url:"index.php",
type:"GET",
dataType:"json",
data:({action: 'ajaxSearch', keywords: searchKeyword }),



в контроллере
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
switch ($_GET['action']) { //или как вы там определяете что подключать
    case 'ajaxSearch':
        $arr = [];
        if (!empty($_GET['keywords'])) {
	    $keywords = mysql_real_escape_string(strip_tags($_GET['keywords']));
	    $arr=staff_search($keywords);
        }
        header('Content-Type: application/json');
	exit(json_encode($arr));
        break;
}
...
Рейтинг: 0 / 0
Как правильно разместить AJAX живой поиск в MVC без ООП
    #39199600
shvedovatb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SharuPoNemnogu,

Я может сейчас глупость спрошу, но как указать, что нужен index.php из корня сайта. Просто у меня в каждой папке пустой index.php лежит, а нужный в корне.
...
Рейтинг: 0 / 0
Как правильно разместить AJAX живой поиск в MVC без ООП
    #39199624
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shvedovatb,

/index.php
...
Рейтинг: 0 / 0
Как правильно разместить AJAX живой поиск в MVC без ООП
    #39199803
shvedovatb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SharuPoNemnogu,

Не получается. Пишет

idnex.php?view=search&keywords=%D1%80 404 (Not Found)
...
Рейтинг: 0 / 0
Как правильно разместить AJAX живой поиск в MVC без ООП
    #39199910
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shvedovatb,

код controller.php покажи
...
Рейтинг: 0 / 0
Как правильно разместить AJAX живой поиск в MVC без ООП
    #39200126
shvedovatb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SharuPoNemnogu,
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
switch ($view) {
...

case 'search':
        
        $arr = array();
        if (!empty($_GET['keywords'])) {
	    	$keywords = mysql_real_escape_string(strip_tags($_GET['keywords']));
	    	$arr=staff_search($keywords);
        }
        header('Content-Type: application/json');
		exit(json_encode($arr));
        break;
...
}
...
Рейтинг: 0 / 0
Как правильно разместить AJAX живой поиск в MVC без ООП
    #39200135
shvedovatb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
или если со всеми подключениями, то так
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
require_once MODEL;
$view = empty($_GET['view']) ? 'main' : $_GET['view'];
switch ($view) {
...
    case 'search':
        $arr = array();
        if (!empty($_GET['keywords'])) {
	    	$keywords = mysql_real_escape_string(strip_tags($_GET['keywords']));
	    	$arr=staff_search($keywords);
        }
        header('Content-Type: application/json');
		exit(json_encode($arr));
    break;
...
}
require_once TEMPLATE.'index.php';
...
Рейтинг: 0 / 0
Как правильно разместить AJAX живой поиск в MVC без ООП
    #39200171
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shvedovatb,

да ну че то странности какие то, в вебе есть посмотреть?
...
Рейтинг: 0 / 0
Как правильно разместить AJAX живой поиск в MVC без ООП
    #39200793
shvedovatb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SharuPoNemnogu,

На гитхабе https://github.com/shvedovatb/tu.cn.ua/tree/master/www
там и кусочек базы
...
Рейтинг: 0 / 0
Как правильно разместить AJAX живой поиск в MVC без ООП
    #39201477
shvedovatb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не знаю как, но все заработало. Спасибо.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как правильно разместить AJAX живой поиск в MVC без ООП
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]