Jump to content
покупайте без комиссии
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Написать свой <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>

 

 

Link to post
Share on other sites

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

Link to post
Share on other sites

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

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

 

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

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

Link to post
Share on other sites

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

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

 

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

Link to post
Share on other sites

Посмотрите как комментарии к товарам сделаны - это и есть хороший пример.

Link to post
Share on other sites

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

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

 

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

Link to post
Share on other sites

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

Это форм, который находится в файле "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, хотя у меня не стоят такие ограничение. Доброе люди, пожалуйста помогите.

Link to post
Share on other sites

@Orkh3ll0

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

>>>>

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

 

Link to post
Share on other sites

@shoputils После поста проверил, нашел и исправил это, но опять не работает. Что еще может это быть?

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.