
08.02.2016, 15:45
|
Новичок на форуме
|
|
Регистрация: 08.02.2016
Сообщений: 8
|
|
Реализация в AJAX
Я пытаюсь это реализовать в AJAX
У меня есть таблица данные которой вытягиваю из базы.
<div class="block-content collapse in">
<div id="tab" class="span12">
<table cellpadding="0" cellspacing="0" border="0" class="table tablestriped table-bordered" id="example">
<thead>
<tr>
<th>Регион</th>
<th>Школа</th>
<th>школа</th>
<th>Персона</th>
<th>Учитель</th>
<th>Контакт персона</th>
<th>Номер</th>
<th>Эл-почта</th>
<th>Дата</th>
<th>Кол-во ночующих</th>
<th>*Выборка</th>
</tr>
</thead>
<tbody>
<?php
$connect=mysqli_connect ("localhost", "darius","qwerty", "competition") or die ("Could not connect to mysql!");
$query=mysqli_query($connect, "SELECT * FROM registration_page WHERE class LIKE '9%' ORDER BY registration_page.member ");
while ($reg_list=mysqli_fetch_array($query))
{
if(empty($reg_list['overnight_period']))
{
$reg_list['overnight_period']="-";
}
if(empty($reg_list['number_of_overnight']))
{
$reg_list['number_of_overnight']="-";
}
echo '<tr>';
echo '<td>' .$reg_list['region']. '</td>';
echo '<td>' . $reg_list['school']. '</td>';
echo '<td>' . $reg_list['class'] . '</td>';
echo '<td>' . $reg_list['member'] . '</td>';
echo '<td>' . $reg_list['teacher'] . '</td>';
echo '<td>' . $reg_list['cont_member']. '</td>';
echo '<td>' . $reg_list['number_ph'] . '</td>';
echo '<td>' . $reg_list['email'] . '</td>';
echo '<td>' .$reg_list['overnight_period']. '</td>';
echo '<td>' .$reg_list['number_of_overnight']. '</td>';
echo '<td><input type="checkbox" name="'.$reg_list['id'].'" form="form1"></td>';
echo '</tr>';
}
?>
</tbody>
</table>
<form id="form1" action="include/delete.php">
<input type="sumbit" value="Удалить">
</form>
</div>
</div>
в поле "*Выборка" я создаю checkbox'ы для того чтобы потом помечать кого хочу удалить из таблицы.
Потом работаю с этим checkbox'ами через GET в php скрипте:
//delete.php
<?php
header('Content-Type: text/html; charset=utf-8');
$connect=mysqli_connect ("localhost", "darius","qwerty", "competition") or die ("Could not connect to mysql!");
if(empty($_GET))
{
echo 'Ни один ученик не был выбран!';
}
else
{
$seccess=0;
foreach ($_GET as $key=>$value)
{
if($query=mysqli_query($connect,"DELETE FROM registration_page WHERE id='$key'"))
{
$seccess++;
}
else
{
$error=true;
break;
}
}
if($error)
{
echo 'Ошибка при удалении!<br>Успешных удалений: '.$seccess;
}
else
{
echo 'Элементы были удалены!<br>Успешных удалений: '.$seccess;
}
}
?>
<meta http-equiv="refresh" content="2;URL=/admin/">
Это конечно всё устарело, пишу как в каменном веке, с обновлениям страниц и обратной переадресацией))
По этому и хочу это всё посадить на AJAX.
Вот мои попытки:
В форме атрибут тип тэга input прописываю как button, добавляю id="smt"
<form id="form1" action="include/delete.php">
<input type="button" value="Dzest" id="smt">
</form>
так же div'у с классом span12 добавляю id="tab"
<div class="block-content collapse in">
<div id="tab" class="span12">
<table cellpadding="0" cellspacing="0" border="0" class="table tablestriped table-bordered" id="example">
<thead>
<tr>
....
</tr>
</thead>
<tbody>
<?php
....
?>
</tbody>
</table>
<form id="form1" action="include/delete.php">
....
</form>
</div>
</div>
Далее прописываю JQuery скрипт:
$(document).ready(function()
{
var form=$("#form1");
$("#smt").click(function()
{
$.ajax(
{
type:"POST",
url:form.attr("action"),
data:$("#form1 input").serialize(),
success: function(html)
{
$("#tab").html(html);
}
});
return false;
});
});
Я так понимаю что у меня ничего не происходит так как строчка
data:$("#form1 input").serialize(),
должна забирать значения input'ов из тэга value. Но моя обработка нажатых checkbox'ов работает с тэгом name и значение передаётся в виде ON
Тоесть в адресной строке будет: ...delete.php?1=ON
Может кто знает как реализовать подобное в AJAX или может посоветуете как-то подругому выбирать элементы в таблице, и удалять их без перезагрузки страницы?
Зарание спасибо!
|
|

08.02.2016, 15:51
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
foreach ($_GET as $key=>$value)
{
if($query=mysqli_query($connect,"DELETE FROM registration_page WHERE id=' $key'"))
Это дыра в безопасности. Зачем вы используете mysqli, если не используете его возможностей для устранения этого?
Сообщение от darius32bit
|
Тоесть в адресной строке будет: ...delete.php?1=ON
|
Такого быть не должно ни в url, ни передачей асинхронным запросом.
|
|

08.02.2016, 16:04
|
Новичок на форуме
|
|
Регистрация: 08.02.2016
Сообщений: 8
|
|
да я дуб дубом в этом во всём. Просто не знаю как по другому реализовать подобную выборку элементов из таблицы.
|
|

08.02.2016, 16:05
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Чуть позже напишу как, суть, если никто иной не ответит, сейчас пока напряг.
|
|

08.02.2016, 19:30
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Во-первых нужно выбрасывать из кода cellpadding="0" cellspacing="0" border="0" .... и т.п., есть CSS.
Во-вторых <input type="checkbox" name="'.$reg_list['id'].'" form="form1"> - вполне можно обойтись без этого, вся таблица может быть помещена с успехом в форму, вряд ли это скажется на дизайне. Но если по данным от клиента динамически строить таблицу, и иметь форму за ее приделами, то можно. Но заголовок таблицы будет постоянен насколько я понял, а меняться будут только данные TBODY, то такой подход ну только лишние N-байт на строку в коде, не более. )
Самое плачевное это в серверном коде.
1) mysqli фактически не используется, да и лучше бы переходить на PDO.
2) or die ("Could not connect to mysql!"); - такой подход не пойдет в режиме асинхронного обмена данными с клиентом в оговоренном формате.
3) Запрос в базу, это выборка по условию class LIKE '9%'. А если нужно иной класс тогда что? Видимо клиент должен иметь возможность выбрать например из списка нужный класс или нет? И почему LIKE '9%'? Классы это такие же записи как данные по нему, и каждый класс удобно содержать также под уникальным идентификатором, а не под "9А", это имя, псевдоним класса, но не удобен как идентификатор, переименуют его в в "9А-бис" и что тогда?
4) Функция mysqli_fetch_array() без второго параметра возвращает два идентичных набора данных - один как индексный массив, второй как ассоциативный, вы используете только ассоциативные данные, то есть попусту тратите и время и ресурсы.
5) action="include/delete.php" - вообще-то делается так: подключаемые файлы, это закрытая для прямого доступа папка, но можно и иметь открытую, но только в ней не должно быть файлов конфигураций и прочего. И почему delete.php, а если не удалять, а редактировать надо, тогда что порождать edit.php?
6) <input type="checkbox" name="'. $reg_list['id'].'" form="form1">. Флажок не выбранный на клиенте не передается на сервер, это особенность такого поля. Выбранный и переданный на сервер флажок будет иметь значение "on". Но в данном случае это не удобно, да и имя как цифру (надеюсь, что $reg_list['id'], это цифра, уникальный идентификатор), это не хорошо. Корректней было бы так <input type="checkbox" name="field_name['.$reg_list['id'].']" form="form1">, и на сервере будет массив field_name, индексы которого, это идентификаторы. Но в данном случае проще и удобнее так - <input type="checkbox" name="field_name[]" value="'.$reg_list['id'].'">. В этом случае сервер получит массив содержащий значения ID тех записей, которые нужно удалить.
Для того чтобы это выполнялось асинхронными запросами удобно данные полученные из базы отдать клиенту в формате json. А так как таблица фиксированная по столбцам, то достаточно отдать клиенте только значения, без ключей:
while ($reg_list=mysqli_fetch_row($query)) { //получаем только индексный массив
//здесь строки 25-32 кода выбрасываем и заменяем их этим
$reg_list['overnight_period'] = $reg_list['overnight_period'] ?: "-";
$reg_list['number_of_overnight'] = $reg_list['number_of_overnight'] ?: "-";
//хотя такую замену можно было сделать в рамках запроса к базе
//далее формируем массив данных, который будет отдан клиенту на запрос
$out[] = $reg_list;
}
//Отдаем данные клиенту как json, и по уму, один скрипт должен редактировать,
//а это уметь добавлять, обновлять, изменять и удалять данные, а не иметь на все эти случаи кучу скриптов
//значит возможны условия, поэтому отдать данные клиенту и выход
exit(json_encode($out));
При этом в запросе к базе нужно перечислить выбираемые поля в том порядке, в каком они перечислены в шапке таблицы, то есть не SELECT *, а SELECT region, school, ....
При запросе клиентом этой страницы ему отдается только шапка таблицы <thead> с ее строкой, а <tbody> пустое, и список для выбора класса. Данные запрашиваемого класса возвращается как показано выше.
На клиенте:
$(function() {
$('form').submit(function() { //один обработчик для двух форм, хотя список выбора класса не обязательно формой, это просто для примера
$.ajax(
{
type:"POST",
url: this.action, //можно задать через action, но выбор класса и обработка по его данным, это должен быть один скрипт обработчик
data: $(this).serialize(), //сервер будет определять форму источник по ключу данных
dataType: 'json',
success: function(o) {
//здесь по имени свойства возвращенного объекта определяет адрес ответа сервера:
//o.error - ошибки
//o.data - данные по классу
//o.message - сообщение о результатах удаления
//если пришли данные по классу, то их вывод в таблицу с предварительной очисткой TBODY
if(!!o.data) {
//вывод в таблицу
var tb = $('#example tbody').empty(), t, n;
while(t = o.data.pop()) {
n = t.pop();
tb.prepend('<tr><td>' + t.join('</td><td>') + '<input type="checkbox" name="del[]" value="'+n+'"></td></tr>');
}
}
}
});
return false;
})
});
На сервере, если пришел ключ запроса класса, для примера "choice", то сервер делает запрос и возвращает данные по классу, если ключ "del", то удаляет запрашиваемые, но ни в коем случае как было представлено кодом, это и дыра, и неэффективно. Удалить:
if($_POST['del'] && is_array($_POST['del']) && $del = implode(',', array_diff(array_map('intval', $_POST['del']), [0]))) {
$out = mysqli_query($connect, "DELETE FROM registration_page WHERE id IN(" . $del . ")") ? ['message' => 'Ok'] : ['error' => 'No'];
exit(json_encode($out));
}
Последний раз редактировалось laimas, 08.02.2016 в 19:50.
|
|

08.02.2016, 22:03
|
Новичок на форуме
|
|
Регистрация: 08.02.2016
Сообщений: 8
|
|
Спасибо вам за ваши труды. Только я не совсем понял куда мне девать этот код:
echo '<tr>';
echo '<td>' .$reg_list['region']. '</td>';
echo '<td>' . $reg_list['school']. '</td>';
echo '<td>' . $reg_list['class'] . '</td>';
echo '<td>' . $reg_list['member'] . '</td>';
echo '<td>' . $reg_list['teacher'] . '</td>';
echo '<td>' . $reg_list['cont_member']. '</td>';
echo '<td>' . $reg_list['number_ph'] . '</td>';
echo '<td>' . $reg_list['email'] . '</td>';
echo '<td>' .$reg_list['overnight_period']. '</td>';
echo '<td>' .$reg_list['number_of_overnight']. '</td>';
echo '<td><input type="checkbox" name="'.$reg_list['id'].'" form="form1"></td>';
echo '</tr>';
я сделал так:
while ($reg_list=mysqli_fetch_array($query))
{
if(empty($reg_list['overnight_period']))
{
$reg_list['overnight_period']="-";
}
if(empty($reg_list['number_of_overnight']))
{
$reg_list['number_of_overnight']="-";
}
echo '<tr>';
echo '<td>' .$reg_list['region']. '</td>';
echo '<td>' . $reg_list['school']. '</td>';
echo '<td>' . $reg_list['class'] . '</td>';
echo '<td>' . $reg_list['member'] . '</td>';
echo '<td>' . $reg_list['teacher'] . '</td>';
echo '<td>' . $reg_list['cont_member']. '</td>';
echo '<td>' . $reg_list['number_ph'] . '</td>';
echo '<td>' . $reg_list['email'] . '</td>';
echo '<td>' .$reg_list['overnight_period']. '</td>';
echo '<td>' .$reg_list['number_of_overnight']. '</td>';
echo '<td><input type="checkbox" name="'.$reg_list['id'].'" form="form1"></td>';
echo '</tr>';
$out[] = $reg_list;
}
exit(json_encode($out));
(я оставил огромную запись с if'ами так как мне она более понятна  )
А ещё из-за exit(json_encode($out)); у меня не грузиться нижняя часть сайта ну и сама форма, так как она находится под таблицей. Плюс над таблицей появился странный вывод из базы.
Скриншоты: как получилось и как было
Я не знаю что с этим делать со всем)
|
|

09.02.2016, 12:12
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от darius32bit
|
Только я не совсем понял куда мне девать этот код:
|
Выбросить и я сделал так выбросить тоже, ибо в приведенных мною примерах сервер отдает клиенту только данные для ячеек таблицы, а таблицу, вернее html-код содержимого TBODY изменяет Javascript при каждом запросе данных. Читать еще раз и внимательно.
Выводить html-код таблицы echo '<tr>'; echo '<td>' .$reg_list['region']. '</td>';, после чего отдавать json - exit(json_encode($out));, это не только глупость, но и причина ошибки на клиенте. Можно строить html-код таблицы и на сервере, отдавая его клиенту, но обмен данными с клиентом даже у вас в простейшем случае, это диалог, организовать его данными в html формате можно, но не нужно.
Сообщение от darius32bit
|
я оставил огромную запись с if'ами так как мне она более понятна
|
Выбросить в помойку и забыть этот бред. ) И не потому, что так нельзя, а потому, что это не логично. Поля overnight_period и umber_of_overnight должны иметь значение по умолча6нию, либо "нет", либо NULL, и скорее всего у вас "нет". А значит достаточно тогда проверять, если по условию:
if(!$reg_list['overnight_period']) $reg_list['overnight_period']="-";
Для таких выражений существует тернарный условный оператор (или еще называют условной записью), который краток, лаконичен и понятен. Но можно записать его и так:
$a = $a ?: $b;
что на пальцах означает - если булево значение $a равно true ($a не пустая, не равно 0 или null), то $a будет равна себе, не изменит значения, иначе $a будет рана $b. Ничего ужасного и непонятного в этом нет, конечно если не учить конструкции языка, то тогда будет страшно все. Писать же длинные портянки там, где можно сократить код за счет иных конструкций языка, по не знанию их это не оправдание.
А вообще это все в рамках запроса делать надо. Было сказано на примере, что в запросе нужно перечислить все поля данных, данные которых нужны и обязательно в том порядке, в каком они выводятся поколоночно в html-таблицу. А для этих двух полей в запросе получать значения по условию
SELECT region, school, ... , IF(overnight_period, overnight_period, "-") overnight_period, IF(number_of_overnight, number_of_overnight, "-") number_of_overnight, id FROM ....
Если значение для этих пустых полей как "-" будет всегда уместно, тогда вообще не нужно никаких условий с преобразованиями, достаточно в SQL таблицу указать этим полям значение по умолчанию "-".
Сообщение от darius32bit
|
А ещё из-за exit(json_encode($out)); у меня не грузиться нижняя часть сайта ну и сама форма
|
Это не из-за exit(), а следствие необдуманности логической структуры кода страницы. Если Ajax запрос обращается к той же самой странице, то код обработки Ajax запросов должен быть помещен в самом начале страницы:
<?php
//здесь проверка есть ли асинхронные POST запросы от клиента
//если есть, то обработка их выдача ответа и выход
//а далее html-код страницы, который будет выводиться единожды
//GET запросом пользователя
?>
<html>
<head>
......
</head>
<bode>
......
</body>
</html>
|
|

09.02.2016, 19:41
|
Новичок на форуме
|
|
Регистрация: 08.02.2016
Сообщений: 8
|
|
ну смысл в том что заходя на эту страницу, пользователь уже должен видеть таблицу,а не по нажатию на кнопку. Мне нужна кнопка для удаления выбраных записей из таблицы и асинхронное обновление этой таблицы. Если я выкину тот вывод из базы, то при заходе на страницу их просто не будет.
По поводу exit()
Как мне тогда изменить код чтобы это работало?
|
|

09.02.2016, 22:36
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от darius32bit
|
пользователь уже должен видеть таблицу
|
Таблицу чего, именно 9Х? Делайте запрос, выводе, если надо. Нет кнопок по удалению записей из таблицы, есть кнопки отправки формы. Вы спрашивали про асинхронный обмен, я рассказал как, но видимо либо рассказчик из меня хреновый, либо еще рано/поздно вам таким заниматься.
|
|

18.03.2016, 14:52
|
Новичок на форуме
|
|
Регистрация: 08.02.2016
Сообщений: 8
|
|
Целый месяц был занят другими не менее важными делами по учёбе и буквально несколько дней назад вернулся к этой работе.
Я считаю что Ваш пример для начинающего довольно таки сложный и как я понял Вы не совсем поняли какой результат в итоге мне нужен.
Я воспользовался не которыми вашими идеями и сделал всё по другому. Разобрался как работает ajax в jquery запросах, разобрался в json'е, узнал кое-что новое новое в mysql запросах. Полностью переосмыслил структуру своей базы данных.
Так вот. Мне нужно было при заходе на страницу, уже видеть таблицу с данными полученных из базы. При этом в последнем поле должны создаваться checkbox'ы. Выглядит у меня это так:
http://prntscr.com/agrpkk
А вывод я сделал таким:
index.php
<table class="table table-striped table-bordered table-hover" cellpadding="0" cellspacing="0" border="0" id="example">
<thead>
<tr>
<th>#</th>
<th>Novads</th>
<th>Skola</th>
<th>Klase</th>
<th>Skolnieks</th>
<th>Skolotajs</th>
<th>Skolnieka telefons</th>
<th>Skolotaja telefons</th>
<th>e-mail</th>
<th>Laiks</th>
<th>nakts sk</th>
<th>*Izvelne</th>
</tr>
</thead>
<tbody id="rl9kl">
<?php
$query=mysqli_query($connect, "SELECT rl.id, CONCAT(rl.vards,' ',rl.uzvards) AS skolnieks, rl.id_nov, rl.skola, rl.klase, rl.skolotajs, rl.skolnieka_telefons,
rl.skolotaja_telefons, rl.skolnieka_email, rl.naktsmitne_laiks, rl.naksnotaju_sk, n.id_nov, n.nosaukums
FROM registracijas_lapa_9kl rl, novadi n WHERE rl.id_nov=n.id_nov ORDER BY rl.vards ");
while ($reg_list=mysqli_fetch_array($query))
{
if(empty($reg_list['naktsmitne_laiks']))
{
$reg_list['naktsmitne_laiks']="-";
}
if(empty($reg_list['naksnotaju_sk']))
{
$reg_list['naksnotaju_sk']="-";
}
echo '<tr>';
echo '<td>'.$reg_list['id'].'</td>';
echo '<td>' .$reg_list['nosaukums']. '</td>';
echo '<td>' . $reg_list['skola']. '</td>';
echo '<td>' . $reg_list['klase'] . '</td>';
echo '<td>' . $reg_list['skolnieks'] . '</td>';
echo '<td>' . $reg_list['skolotajs'] . '</td>';
echo '<td>' . $reg_list['skolnieka_telefons']. '</td>';
echo '<td>' . $reg_list['skolotaja_telefons'] . '</td>';
echo '<td>' . $reg_list['skolnieka_email'] . '</td>';
echo '<td>' .$reg_list['naktsmitne_laiks']. '</td>';
echo '<td>' .$reg_list['naksnotaju_sk']. '</td>';
echo '<td><input type="checkbox" value="'.$reg_list['id'].'" name="id[]" form="form1"></td>';
echo '</tr>';
}
?>
</tbody>
</table>
<form id="form1" action="ajax/delete.php" method="post">
<input class="btn btn-primary" type="submit" value="Удалить выбранные записи">
</form>
Если кому не понятно, я использовал латышские названия переменных и названия полей в таблицах, так как сам из Латвии и моя курсовая работа тоже должна быть на соответствующем языке, увы.
вот перевод:
vards - имя
uzvards - фамилия
skolnieks - школьник
skolotajs - учитель
novads - край/регион
nosaukums - название
nasknotaju_sk - кол-во начюющих
nakstmitnes_laiks - дата ночевки (до какого числа)
Далее по нажатию по кнопке "Удалить выбранные записи" должны удаляться из таблицы те записи где я расставил checkbox'ы.
Реализовал я это так:
index.php
$(document).ready(function()
{
$('#form1').ajaxForm(
{//////////////////////////таблица 9 классов
success: function(data)
{
if(data)
{
$('#rl9kl').html(data);
}
else
{
alert("Ни одна запись не была выбрана!");
}
}
});
});
Я решил использовать jquery form plugin
Далее это всё отправляется на обработку php скрипту.
delete.php
<?php
header('Content-Type: text/html; charset=utf-8');
include_once ($_SERVER["DOCUMENT_ROOT"] . "/include/connect.php");
if($_POST['id'])
{
$id=implode(',', $_POST['id']);
$q=mysqli_query($connect, "DELETE FROM registracijas_lapa_9kl WHERE id IN($id)");
//вывод таблицы списка зарегистрированных учиников 9-х классов
$query=mysqli_query($connect, "SELECT rl.id, CONCAT(rl.vards,' ',rl.uzvards) AS skolnieks, rl.id_nov, rl.skola, rl.klase,rl.skolotajs, rl.skolnieka_telefons,
rl.skolotaja_telefons, rl.skolnieka_email, rl.naktsmitne_laiks, rl.naksnotaju_sk, n.id_nov, n.nosaukums
FROM registracijas_lapa_9kl rl, novadi n WHERE rl.id_nov=n.id_nov ORDER BY rl.id ");
while ($reg_list=mysqli_fetch_array($query))
{
if(empty($reg_list['naktsmitne_laiks']))
{
$reg_list['naktsmitne_laiks']="-";
}
if(empty($reg_list['naksnotaju_sk']))
{
$reg_list['naksnotaju_sk']="-";
}
echo '<tr>';
echo '<td>'.$reg_list['id'].'</td>';
echo '<td>' .$reg_list['nosaukums']. '</td>';
echo '<td>' . $reg_list['skola']. '</td>';
echo '<td>' . $reg_list['klase'] . '</td>';
echo '<td>' . $reg_list['skolnieks'] . '</td>';
echo '<td>' . $reg_list['skolotajs'] . '</td>';
echo '<td>' . $reg_list['skolnieka_telefons']. '</td>';
echo '<td>' . $reg_list['skolotaja_telefons'] . '</td>';
echo '<td>' . $reg_list['skolnieka_email'] . '</td>';
echo '<td>' .$reg_list['naktsmitne_laiks']. '</td>';
echo '<td>' .$reg_list['naksnotaju_sk']. '</td>';
echo '<td class="checkbox_td"><input type="checkbox" value="'.$reg_list['id'].'" name="id[]" form="form1"></td>';
echo '</tr>';
}
}
?>
Так и не понял какой результат должна принимать в себя переменная $del из вот этой строчке.
$del = implode(',', array_diff(array_map('intval', $_POST['del']), [0]))
Хоть даже перечитал значение каждой функции в manual'e по PHP. Сервер выдал ошибку в синтаксисе. В итоге мне понадобилась всего одна функция implode.
Чтобы построить mysql запрос :
$id=implode(',', $_POST['id']);
$q=mysqli_query($connect, "DELETE FROM registracijas_lapa_9kl WHERE id IN($id)");
Но всё же хочу сказать Вам спасибо за Вашу помощь, без неё я бы сейчас дольше сидел над реализацией данной системы. Мне очень пригодились такие идеи как например значение атрибута name="id[]" у тэга input. Я до этого не знал что можно таким образом передавать php скрипту массивы.
Возможно моя теперешняя система имеет свои недочёты и не блещет логичностью. Буду рад выслушать предложения по её улучшению.
Естественно это ещё всё сыро выглядит и я ещё займусь всякими украшательствами типа bootstrap уведомлений и jquery smoke plugin.
Спасибо за внимание и за помощь 
Последний раз редактировалось darius32bit, 18.03.2016 в 14:55.
|
|
|
|