Я пытаюсь добавить новый входной текст в OpenCart,
мой взгляд payment_method.tpl я добавил
<label><?php echo $text_comments; ?></label>
<textarea name="comment" rows="8" style="width: 98%;"><?php echo $comment; ?></textarea>
<label><?php echo $text_referred; ?></label> // My Code
<input type="text" name="referred" value="<?php echo $referred; ?>" />
В контроллере payment_method.tpl я добавил
if (!$json) {
$this->session->data['payment_method'] = $this->session->data['payment_methods'][$this->request->post['payment_method']];
$this->session->data['comment'] = strip_tags($this->request->post['comment']);
$this->session->data['referred'] = $this->request->post['referred']; //My Code
}
а также
if (isset($this->session->data['referred'])) {
$this->data['referred'] = $this->session->data['referred']; //Variable
} else {
$this->data['referred'] = '';
}
В моей модели Order.php
$this->db->query("INSERT INTO `" . DB_PREFIX . "order` SET invoice_prefix = '" . $this->db->escape($data['invoice_prefix']) . "', referred = '" . $this->db->escape($data['referred']) . "',
Мои журналы ошибок показывают
2014-09-21 12:57:42 - PHP Notice: Undefined index: referred in /home/dlars/public_html/tempdir/vqmod/vqcache/vq2-catalog_controller_checkout_payment_method.php on line 212
2014-09-21 12:57:42 - PHP Notice: Undefined index: referred in /home/dlars/public_html/tempdir/vqmod/vqcache/vq2-catalog_model_checkout_order.php on line 4
Я понимаю, что все, что на мой взгляд, не публикуется на моем контроллере, однако я не уверен, где еще я могу определить, что указано.
Я думал с OC, что определено в представлении, это отправлено в контроллер?
Кто-нибудь, пожалуйста, помогите
заранее спасибо
Проблема здесь очевидна. Новый упоминается ввод не передается через HTTP-запрос AJAX. Это вызвано в другом шаблоне — checkout.tpl
, Откройте его, прокрутите до конца и найдите этот обратный вызов JS:
$('#button-payment-method').live('click', function() {
Здесь найти строку
data: $('#payment-method input[type=\'radio\']:checked, #payment-method input[type=\'checkbox\']:checked, #payment-method textarea'),
и измените его на:
data: $('#payment-method input[type=\'radio\']:checked, #payment-method input[type=\'checkbox\']:checked, #payment-method textarea, #payment-method input[type=\'text\']'),
Теперь значение должно быть передано через запрос AJAX и должно быть установлено для referred
индексов.
Других решений пока нет …