К основному контенту

Vin запрос либо стол заказов для opencart


Vin запрос либо стол заказов.
В данной статье опишу одну из мелких доработок на сайте. Vin запрос его же можно переделать под стол заказов и так далее.....




1. HTML форма.
То есть сама страница которая отображается на сайте. Ее я оформил в статьях opencart.Есть проверка на ввод данных.
Каталог->статьи->создать
код страницы:

 &nbsp;</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>

 &nbsp;</p>

<p>

 &nbsp;</p>

<h3>

 Форма запроса по номеру кузова</h3>

<form action="vin_request/save_vin_request.php" form="" id="signup" method="post" name="test_vin_request">

 &nbsp;</form>

<legend><b>Данные клиента</b></legend>

<p>

 &nbsp;</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>

 &nbsp;</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 , которую мы создадим позже.


код файла:
<?
 
/* Соединяемся с базой данных */
$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>");
?>
 

3. Создадим таблицу в БД vin_request с такими параметрами :



4.Вывод данных для менеджера
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>");
 
?>



Ну на этом все , в дальнейшем в планах перенести ее в корень сайта как положено по его структуре.

Комментарии

  1. Так какие параметры должны быть в таблице vin_request?

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

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения из этого блога

Товар которого нет в наличии делаем в конце opencart

Товар которого нет в наличии делаем в конце 

Принудительный вывод 404 или редирект на 404 Opencart

Допустим, при каком то условии Вам нужно вывести 404 страницу в Opencart, для это используете такой код в контроллере: //отправляем заголовок 404 $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . '/1.1 404 Not Found'); //перенаправляем на страницу 404  return $this->forward('error/not_found');

Подсветка статусов заказа в opencart

Подсветка статусов заказа в opencart