Vin запрос либо стол заказов.
В данной статье опишу одну из мелких доработок на сайте. Vin запрос его же можно переделать под стол заказов и так далее.....
1. HTML форма.
То есть сама страница которая отображается на сайте. Ее я оформил в статьях opencart.Есть проверка на ввод данных.
Каталог->статьи->создать
код страницы:
</p>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<title></title>
<style type="text/css">
<!--
*, html { font-family: Verdana, Arial, Helvetica, sans-serif; }
body, form, ul, li, p, h2, h3, h4, h5
{
margin: 0;
padding: 0;
border: 1px;
}
body { background-color:; color: #fffff; }
img { border: none; }
p
{
font-size: 1em;
margin: 0 0 1em 0;
}
h2 { font-size: 14px; margin: 0 0 12px; }
#signup
{
margin: 20px auto;
width: 800px;
border: 1px;
}
#signup fieldset
{background-color:#DCDCDC;
margin: 0 0 20px;
padding: 20px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
#signup ol
{
list-style-type: none;
padding: 0;
margin: 0;
}
#signup li
{
margin: 0 0 12px;
position: relative;
}
#signup label
{
width: 150px;
display: inline-block;
vertical-align: top;
}
#signup fieldset input,
#signup fieldset textarea,
#signup fieldset select
{
background: #fff url(ico_validation.png) 379px 24px no-repeat;
display: inline-block;
width: 371px;
border: 1px solid #fff;
padding: 3px 26px 3px 3px;
-moz-transition: background-color 1s ease;
-webkit-transition: background-color 1s ease;
-o-transition: background-color 1s ease;
transition: background-color 1s ease;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
#signup fieldset select { width: 401px; padding: 3px; }
#signup fieldset #postcode { padding: 3px; width: 400px; }
#signup input::-webkit-input-placeholder,
#signup input:-moz-placeholder {
color: #A6A6A6;
}
#signup input:focus:required:invalid
{
background-color: pink;
background-position: 379px 3px;
outline: none;
}
#signup input[type=text]:focus:not([pattern]):required:invalid
{
background-color: #fff;
background-position: 379px -29px;
}
#signup .validation01
{
background: red;
color: #fff;
display: none;
font-size: 12px;
padding: 3px;
position: absolute;
right: -160px;
text-align: center;
top: 0;
width: 150px;
-moz-box-shadow: 0px 0px 4px #ffffff;
-webkit-box-shadow: 0px 0px 4px #ffffff;
box-shadow: 0px 0px 4px #ffffff;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
#signup input:focus + .validation01 { display: block; }
#signup input:focus:required:valid + .validation01 { background: green; }
#signup input:focus:required:valid + .validation01 .invalid { display: none; }
#signup input:focus:required:invalid + .validation01 .valid { display: none; }
#signup input:required:valid
{
background-color: #fff;
background-position: 379px -61px;
}
--> </style>
</p>
<p>
</p>
<p>
</p>
<h3>
Форма запроса по номеру кузова</h3>
<form action="vin_request/save_vin_request.php" form="" id="signup" method="post" name="test_vin_request">
</form>
<legend><b>Данные клиента</b></legend>
<p>
</p>
<fieldset>
<ol>
<li>
<b><label for="msg">ФИО телефон *</label> <input id="msg" name="test_name" placeholder="Ф.И.О. телефон" required="" type="text" /> </b></li>
<li>
<b><label for="email">E-Mail :</label> <input id="email" name="test_mail" placeholder="sales@domain.ru" required="" title="Пожалуйства введите вашу почту" type="text" /> </b>
<p class="validation01">
<b><span class="invalid">Пожалуйства введите вашу почту</span> <span class="valid">Спасибо!</span> </b></p>
</li>
</ol>
</fieldset>
<legend><b><b>Данные автомобиля</b></b></legend>
<p>
</p>
<fieldset>
<ol>
<li>
<b><b><label for="vin">Номер кузова (VIN):</label> <input minlength="17" name="test_vin" placeholder="номер кузова 17 символов" required="" type="text" /> </b></b></li>
<li>
<b><b><label for="make">Марка:</label> <select class="field" name="test_make" onchange="mvr.ChangeForm()" style="width: 120px;"><option label="Alfa-Romeo" value="Alfa-Romeo">Alfa-Romeo</option><option label="Audi" value="Audi">Audi</option><option label="BMW" value="BMW">BMW</option><option label="Buick" value="Buick">Buick</option><option label="Cadillac" value="Cadillac">Cadillac</option><option label="Chery" value="Chery">Chery</option><option label="Chevrolet" value="Chevrolet">Chevrolet</option><option label="Chrysler" value="Chrysler">Chrysler</option><option label="Citroen" value="Citroen">Citroen</option><option label="Daewoo" value="Daewoo">Daewoo</option><option label="Daihatsu" value="Daihatsu">Daihatsu</option><option label="Dodge" value="Dodge">Dodge</option><option label="Eagle" value="Eagle">Eagle</option><option label="Fiat" value="Fiat">Fiat</option><option label="Ford" value="Ford">Ford</option><option label="Honda" value="Honda">Honda</option><option label="Hyundai" value="Hyundai">Hyundai</option><option label="Infiniti" value="Infiniti">Infiniti</option><option label="Isuzu" value="Isuzu">Isuzu</option><option label="Jaguar" value="Jaguar">Jaguar</option><option label="Jeep" value="Jeep">Jeep</option><option label="Kia" value="Kia">Kia</option><option label="Lancia" value="Lancia">Lancia</option><option label="Land Rover" value="Land Rover">Land Rover</option><option label="Lexus" value="Lexus">Lexus</option><option label="Man" value="Man">Man</option><option label="Mazda" value="Mazda">Mazda</option><option label="Mercedes" value="Mercedes">Mercedes</option><option label="Mercury" value="Mercury">Mercury</option><option label="Mitsubishi" value="Mitsubishi">Mitsubishi</option><option label="Nissan" value="Nissan">Nissan</option><option label="Opel" value="Opel">Opel</option><option label="Peugeot" value="Peugeot">Peugeot</option><option label="Plymouth" value="Plymouth">Plymouth</option><option label="Pontiac" value="Pontiac">Pontiac</option><option label="Porsche" value="Porsche">Porsche</option><option label="Proton" value="Proton">Proton</option><option label="Renault" value="Renault">Renault</option><option label="Rover" value="Rover">Rover</option><option label="SAAB" value="SAAB">SAAB</option><option label="Seat" value="Seat">Seat</option><option label="Scania" value="Scania">Scania</option><option label="Skoda" value="Skoda">Skoda</option><option label="SsangYong" value="SsangYong">SsangYong</option><option label="Subaru" value="Subaru">Subaru</option><option label="Suzuki" value="Suzuki">Suzuki</option><option label="Toyota" value="Toyota">Toyota</option><option label="Volkswagen" value="Volkswagen">Volkswagen</option><option label="Volvo" value="Volvo">Volvo</option><option label="Yamaha" value="Yamaha">Yamaha</option></select> </b></b></li>
<li>
<b><b><label for="model">Модель/Серия:</label> <input maxlength="30" name="test_model" type="text" /> </b></b></li>
<li>
<b><b><label for="model">Рулевое управление:</label> <select class="field" name="test_steering"><option label="Слева" value="Слева">Слева</option><option label="Справа" value="Справа">Справа</option></select> </b></b></li>
<li>
<b><b><label>Двигатель:</label> <input maxlength="30" name="test_engine" type="text" /> </b></b></li>
<li>
<b><b><label>Страна производитель</label> <input maxlength="30" name="test_country" type="text" /> </b></b></li>
<li>
<b><b><label>Месяц/Год выпуска:</label> <input maxlength="30" name="test_telephone" placeholder="05.2012" required="" type="text" /> </b></b></li>
<li>
<b><b><label>Объем:</label> <input maxlength="30" name="test_volume" type="text" /> </b></b></li>
<li>
<b><b><label>Тип кузова:</label> <select class="field" name="test_body"><option label="Седан" value="Седан">Седан</option><option label="Хетчбек" value="Хетчбек">Хетчбек</option><option label="Универсал" value="Универсал">Универсал</option><option label="Джип" value="Джип">Джип</option><option label="Купе" value="Купе">Купе</option><option label="Кабриолет" value="Кабриолет">Кабриолет</option><option label="Минивен" value="Минивен">Минивен</option><option label="Микроавтобус" value="Микроавтобус">Микроавтобус</option></select> </b></b></li>
<li>
<b><b><label>Тип КПП:</label> <select class="field" name="test_check_point"><option label="Автомат" value="Автомат">Автомат</option><option label="Механика" value="Механика">Механика</option><option label="Вариатор" value="Вариатор">Вариатор</option><option label="Роботизированная" value="Роботизированная">Роботизированная</option></select> </b></b></li>
<li>
<b><b><label>Список нужных деталей:</label><textarea name="test_message" placeholder="Например: 1. амортизатор передний левый." required=""></textarea></b></b></li>
</ol>
</fieldset>
<p>
<b><b><input class="buttons" type="submit" value="Отправить запрос" /> <input class="buttons" type="reset" value="Очистить" /> </b></b></p>
2.Файл обработчик HTML формы. save_vin_request.php закинуть в корень сайта в папку vin_request
Данный файл обрабатывает HTML форму и записует данные в базу данных в таблицу vin_request , которую мы создадим позже.
код файла:
3. Создадим таблицу в БД vin_request с такими параметрами :Данный файл обрабатывает HTML форму и записует данные в базу данных в таблицу vin_request , которую мы создадим позже.
код файла:
<?
/* Соединяемся с базой данных */
$hostname = "*************"; // название/путь сервера, с MySQL
$username = "*********"; // имя пользователя (в Denwer`е по умолчанию "root")
$password = "********"; // пароль пользователя (в Denwer`е по умолчанию пароль отсутствует, этот параметр можно оставить пустым)
$dbName = "********"; // название базы данных
/* Таблица MySQL, в которой будут храниться данные */
$table = "vin_request";
/* Создаем соединение */
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
mysql_query ('SET NAMES utf8');
mysql_query ('SET CHARACTER SET utf8');
/* Выбираем базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die (mysql_error());
/* Определяем текущую дату */
$cdate = date("Y-m-d");
/* Составляем запрос для вставки информации в таблицу
name...date - название конкретных полей в базе;
в $_POST["test_name"]... $_POST["test_mess"] - в этих переменных содержатся данные, полученные из формы */
$query = "INSERT INTO $table SET name='".$_POST['test_name']."', email='".$_POST["test_mail"]."', vin='".$_POST['test_vin']."',make='".$_POST['test_make']."',model='".$_POST['test_model']."',steering='".$_POST['test_steering']."',engine='".$_POST['test_engine']."',country='".$_POST['test_country']."',volume='".$_POST['test_volume']."',body='".$_POST['test_body']."',check_point='".$_POST['test_check_point']."', message='".$_POST["test_message"]."',
data='$cdate'";
/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
mysql_query($query) or die(mysql_error());
/* Закрываем соединение */
mysql_close();
/* В случае успешного сохранения выводим сообщение и ссылку возврата */
echo ("<div style=\"text-align: center; margin-top: 10px;\">
<font color=\"green\">Запрос сохранен и отправлен менеджеру.<br> В течении дня вы получите ответ на почту</font>
<a href=\"http://cars-collections.com.ua/index.php?route=information/information&information_id=15\">Вернуться назад</a></div>");
?>
viev_vin_request.php закинуть в корень сайта в папку vin_request
а. Редактируем файл admin->view->template->common->header.tpl
<li><a href="http://адрес_сайта.com.ua/vin_request/viev_vin_request.php" target="_blank"><?php echo 'VIN запросы'; ?></a></li> нищим эту строку ,вставляем над ней строку которая выше// <li><a href="<?php echo $order; ?>"><?php echo $text_order; ?></a></li>
б. Код файла viev_vin_request.php
<?php
/* Соединяемся с базой данных */
$hostname = "**********"; // название/путь сервера, с MySQL
$username = "*********"; // имя пользователя (в Denwer`е по умолчанию "root")
$password = "***********"; // пароль пользователя (в Denwer`е по умолчанию пароль отсутствует, этот параметр можно оставить пустым)
$dbName = "**********"; // название базы данных
/* Таблица MySQL, в которой будут храниться данные */
$table = "vin_request";
/* Создаем соединение */
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
mysql_query ('SET NAMES utf8');
mysql_query ('SET CHARACTER SET utf8');
/* Выбираем базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die (mysql_error());
//сохранение данных из формы для дальнейшей обработки
//print_r($_POST); //для тестирования получаемых данных
$id=intval(@$_POST['id']);
$additional=@$_POST['additional'];
$submit_edit=@$_POST['submit_edit'];
$del=@$_POST['del'];
/* Составляем запрос для извлечения данных из полей "name", "email", "theme",
"message", "data" таблицы "test_table" */
$query = "SELECT id, name, email, vin, make, model, steering, engine, country, volume, body, check_point, message, additional, data FROM $table";
if(@$submit_edit) {
$query = "UPDATE $table SET additional='$additional' WHERE id='$id'";
mysql_query($query) or die (mysql_error());
}
if(@$del) {
$query = "DELETE FROM `$table` WHERE `id` = $id";
/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
mysql_query($query) or die (mysql_error());
}
/* Заносим в переменную $res всю базу данных */
$query = "SELECT * FROM $table";
/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
$res = mysql_query($query) or die(mysql_error());
/* Выводим данные из таблицы */
echo ("
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />
<title>Вывод данных из MySQL</title>
<style type=\"text/css\">
<!--
body { font: 12px Georgia; color: #666666; }
h3 { font-size: 16px; text-align: center; }
table { width: 100%; border-collapse: collapse; margin: 0px auto; background: #E6E6E6; }
td { padding: 3px; text-align: center; vertical-align: middle; }
.buttons { width: auto; border: double 1px #666666; background: #D6D6D6; }
-->
</style>
</head>
<body>
<h3>Запросы по номеру кузова</h3>
<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\">
<tr style=\"border: solid 1px #000\">
<td><b>#</b></td>
<td align=\"center\"><b>Дата запроса</b></td>
<td align=\"center\"><b>ФИО телефон</b></td>
<td align=\"center\"><b>E-Mail</b></td>
<td align=\"center\"><b>Номер кузова</b></td>
<td align=\"center\"><b>Марка:</b></td>
<td align=\"center\"><b>Модель/Серия</b></td>
<td align=\"center\"><b>Рулевое управление:</b></td>
<td align=\"center\"><b>Двигатель:</b></td>
<td align=\"center\"><b>Страна производитель:</b></td>
<td align=\"center\"><b>Месяц/Год выпуска:*</b></td>
<td align=\"center\"><b>Кузов:</b></td>
<td align=\"center\"><b>КПП:</b></td>
<td align=\"center\"><b>Список деталей</b></td>
<td align=\"center\"<b>комментарии</b>
</tr>
");
/* Цикл вывода данных из базы конкретных полей */
while ($row = mysql_fetch_array($res)) {
echo "<form method=POST action='viev_vin_request.php'>\n";//в акшине надо указывать на какой файл передать данные
echo "<tr>\n";
echo "<td>".$row['id']."<input type=hidden name=id value=".$row['id']."></td>\n";
echo "<td>".nl2br($row['data'])."</td>\n";
echo "<td>".nl2br($row['name'])."</td>\n";
echo "<td>".nl2br($row['email'])."</td>\n";
echo "<td>".nl2br($row['vin'])."</td>\n";
echo "<td>".nl2br($row['make'])."</td>\n";
echo "<td>".nl2br($row['model'])."</td>\n";
echo "<td>".nl2br($row['steering'])."</td>\n";
echo "<td>".nl2br($row['engine'])."</td>\n";
echo "<td>".nl2br($row['country'])."</td>\n";
echo "<td>".nl2br($row['volume'])."</td>\n";
echo "<td>".nl2br($row['body'])."</td>\n";
echo "<td>".nl2br($row['check_point'])."</td>\n";
echo "<td>".nl2br($row['message'])."</td>\n";
echo "<td><textarea name='additional'>".nl2br($row['additional'])."</textarea></td>\n";
echo "<td colspan=\"11\" align=\"center\"><input type=\"submit\" name=\"submit_edit\" class=\"buttons\" value=\"Сохранить изменения\" /></td>\n";
echo "<td colspan=\"11\" align=\"center\"><input type=\"submit\" name=\"del\" class=\"buttons\" value=\"удалить\" /></td>\n";
echo "</form>\n";
}
echo ("</table>\n");
/* Закрываем соединение */
mysql_close();
/* Выводим ссылку возврата */
echo ("<div style=\"text-align: center; margin-top: 10px;\"><a href=\"http://cars-collections.com.ua/\">Вернуться назад</a></div>");
?>
Ну на этом все , в дальнейшем в планах перенести ее в корень сайта как положено по его структуре.

Так какие параметры должны быть в таблице vin_request?
ОтветитьУдалитьПриветствую,спасибо за отличный фак, остался вопрос. получаю ошыбку Unknown column 'id' in 'where clause' где может быть проблема?
ОтветитьУдалитьНе нашел на сайте vin_request параметров для базы.