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 параметров для базы.