Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Написать свой <form>


Recommended Posts

Привет всем.

Хочу создать на странице с продуктами свою форму. При клике открывается модальная форма, заполнять и подтвердить. При этом должен пойти инсерт в базу и в админ панельке создать страницу для этих запросов. Все могу легко реализовать в PHP, но не знаю как сделать на opencart. Какой метод использовать? Ajax-ом посылать или методом POST? 
В catalog/view/theme/my_theme_name/template/product/product.twig уже написал форму. Что нужно сделать дальше? Где делать коннекшион к базе данных, инсерт и в конце вывести что все удачно?
 

<button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Open Modal</button>

<div class="modal fade" id="myModal" role="dialog">
	<div class="modal-dialog">
		<div class="modal-content">
			<div class="modal-header">
			<button type="button" class="close" data-dismiss="modal">&times;</button>
			<h4 class="modal-title">Modal Header</h4>
			</div>
			<div class="modal-body">
				<form class="form-horizontal" action="what_to do here? :)">
					<div class="form-group">
						<label class="control-label col-sm-2" for="name">First Name:</label>
						<div class="col-sm-10">
							<input type="text" class="form-control" id="name" placeholder="Enter password" name="name">
						</div>
					</div>
					<div class="form-group">        
						<div class="col-sm-offset-2 col-sm-10">
							<button type="submit" class="btn btn-default">Submit</button>
						</div>
					</div>
				</form>
			</div>
			<div class="modal-footer">
				<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
			</div>
		</div>
	</div>
</div>

 

 

Надіслати
Поділитися на інших сайтах


@anboza спасибо за ответ. Структуру читал, на MVC и opencart новенький, думал может есть примерчик маленький, что бы быстрее научиться. Читать и самому пробовать сделать, конечно эффективней для полного понятия структуры до корней, но нету столько много времени для этого.

Надіслати
Поділитися на інших сайтах


39 минут назад, Orkh3ll0 сказал:

Все могу легко реализовать в PHP

 

ну так записывайте в свою таблицу. Все правила php работают. 

или в чем вопрос?

Надіслати
Поділитися на інших сайтах

@anboza Обычно я акшион отправляю на какую то страницу и на этой странице пишу
 

İf(isset($_POST["something"]))
{
do something;
}

 

А тут все запутанней, сейчас пытаюсь понять по файлам edit, как тут все устроено

Надіслати
Поділитися на інших сайтах


8 часов назад, Orkh3ll0 сказал:

думал может есть примерчик маленький

 

Весь движок - большой сплошной пример.

Надіслати
Поділитися на інших сайтах

Доброе люди, пожалуйста помогите найти  ошибку. На примере других форм сделал свое.

Это форм, который находится в файле "catalog/view/theme/my_theme_name/template/productproduct.twig"

<form class="form-horizontal" enctype="multipart/form-data" id="form-kredit">
	<div id="kredits"></div>
	<div class="form-group">
		<label class="control-label col-sm-2" for="myname">First Name:</label>
		<div class="col-sm-10">
			<input type="text" class="form-control" id="myname" placeholder="Enter Name"  name="myname">
		</div>
	</div>
	<div class="form-group">        
	<div class="col-sm-offset-2 col-sm-10">
		<button type="button" id="submit_kredit" data-loading-text="{{ text_loading }}" class="btn btn-primary">{{ button_continue }}</button>
		</div>
	</div>
</form>

 

Это Ajax, находится в том же файле"catalog/view/theme/my_theme_name/template/productproduct.twig"
 

$('#kredits').delegate('.pagination a', 'click', function(e) {
	e.preventDefault();
	
	$('#kredits').fadeOut('slow');
	
	$('#kredits').load(this.href);
	
		$('#kredits').fadeIn('slow');
	});

	$('#kredits').load('index.php?route=product/product/kredit&product_id={{ product_id }}');
	
	$('#submit_kredit').on('click', function() {
		$.ajax({
			url: 'index.php?route=product/product/kredits&product_id={{ product_id }}',
			type: 'post',
			dataType: 'json',
			data: $("#form-kredit").serialize(),
			beforeSend: function() {
				$('#submit_kredit').button('loading');
			},
			complete: function() {
				$('#submit_kredit').button('reset');
			},
			success: function(json) {
				$('.alert-dismissible').remove();
	
				if (json['error']) {
					$('#kredits').after('<div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> ' + json['error'] + '</div>');
				}
	
				if (json['success']) {
					$('#kredits').after('<div class="alert alert-success alert-dismissible"><i class="fa fa-check-circle"></i> ' + json['success'] + '</div>');
	
					$('input[name=\'myname\']').val('');
				}
			}
		});
	});

 

Это контроллер "catalog/controller/product/product.php"

public function kredit() {
		$this->load->language('product/product');

		$json = array();

		if ($this->request->server['REQUEST_METHOD'] == 'POST') {
			if (utf8_strlen($this->request->post['myname'])) {
				$json['error'] = $this->language->get('error_name');
			}

			if (!isset($json['error'])) {
				$this->load->model('catalog/kredit');

				$this->model_catalog_kredit->addKredit($this->request->get['product_id'], $this->request->post);

				$json['success'] = $this->language->get('text_success');
			}
		}

		$this->response->addHeader('Content-Type: application/json');
		$this->response->setOutput(json_encode($json));
	}

 

А это часть модели файл находится в "catalog/model/catalog/kredit.php"

<?php
class ModelCatalogKredit extends Model {
	public function addKredit($product_id, $data) 
	{
		$this->db->query("UPDATE " . DB_PREFIX . "product SET kredit_status = 1 where product_id = '" . (int)$product_id . "'");
	}
}

 

Создать в бд колумн и хочу его обновить и этим проверить правильно ли построил.Но не обновляется, к тому же выводится ошибка что минимум 3 буквы и макс 25, хотя у меня не стоят такие ограничение. Доброе люди, пожалуйста помогите.

Надіслати
Поділитися на інших сайтах


@Orkh3ll0

url: 'index.php?route=product/product/kredits&product_id={{ product_id }}',

>>>>

url: 'index.php?route=product/product/kredit&product_id={{ product_id }}',

 

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.