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

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

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

Как заменить “сломанное” изображение?

Как заменить “сломанное” изображение? Случается так, что на странице по различного рода причинам могут не загрузиться те или иные изображения. Это негативно сказывается на восприятии контента. Средствами JavaScript мы можем заменить такие изображения, какими-то заглушками. Напишем функцию обработчик события  onError : function imgError(image) { image.onerror = ""; image.src = "/images/noimage.gif"; return true; } Воспользуемся нашей функцией, указав её в атрибуте onerror элементов img. <img src="image.png" onerror="imgError(this);"/> Или вариант без использования целой функции: <img src="image.png" onError="this.onerror=null;this.src='/images/noimage.gif';" />

Редактирование заказа opencart 1.5.1.3 часть 2

Редактирование заказа opencart 1.5.1.3 часть 2 Как и обещал по поводу доработок , сегодня добавил редактирование колличества в заказе, сумма при этом пересчитывается автоматом , только итоговая сумма не пересчитывается .