javascript — форма не предоставляет данные

У меня неприятная проблема с отправкой формы. Все мои функции вызываются (проверяются через файл журнала), но request -> post (‘..’) ничего не возвращает. Я был бы вечно благодарен всем, кто помогает решить эту головную боль.

php файл загружает шаблон, заполняет форму данными. Форма содержит кнопку, которая при нажатии вызывает JavaScript-функцию addAllToCartProject (). эта функция вызывает функцию addAll в исходном файле php, где я пытаюсь получить данные из формы безуспешно.

Код, над которым я работаю, предназначен для модуля OpenCart.

файл шаблона —> project_edit.tpl

<div id="tab-products" class="tab-content">
<form  method="post" enctype="multipart/form-data" id="form2">

<div class="buttons"><div class="left">
<input type="button" value="<?php echo $button_add_products; ?>" id="pselect" class="button" />
<input type="button" value="<?php echo $button_add_all_cart; ?>" id="addallltocart" onclick="addAllToCartProject();" class="button" />
<input type="button" value="<?php echo $button_print; ?>" id="printproject" class="button" />
</div></div>
<div class="cart-info">
<table>
.
.
.
</table>
<input type="hidden" name="akey" value="<?php echo $akey; ?>" />
<input type="hidden" name="eid" value="<?php echo $eid; ?>" />
</form>

</div>

функция JavaScript

function addAllToCartProject() {
$.ajax({
url: 'index.php?route=account/projects/addAll',
type: 'post',
data: $('#form2').serialize(),
dataType: 'json',
success: function(json) {
$('.success, .warning, .attention, .information, .error').remove();

if (json['error']) {
$('#notification').html('<div class="warning" style="display: none;">' + json['error'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');

$('.warning').fadeIn('slow');

$('#cart-total').html(json['total']);

$('html, body').animate({ scrollTop: 0 }, 'slow');
} else {

$('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');

$('.success').fadeIn('slow');

$('#cart-total').html(json['total']);

$('html, body').animate({ scrollTop: 0 }, 'slow');
}
}
});
}

php файл -> projects.php

.
.
.
if (isset($this->request->get['project_id'])) {
$printlink = $this->url->link('projects/projects_print', 'project_id=' . $eid . '&akey=' . $akey);
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/account/projects_edit.tpl')) {
$this->template = $this->config->get('config_template') . '/template/account/projects_edit.tpl';
} else {
$this->template = 'default/template/account/projects_edit.tpl';
}
} else { ..............}
.
.
.

public function addAll() {

$this->language->load('checkout/cart');
$this->language->load('account/projects');
$this->load->model('account/projects');if (isset($this->request->post['eid'])) {
$eid = $this->request->post['eid'];
} else {
$eid = '0';
$file="log.txt";
$log=fopen($file,'a');
fwrite($log,"\n eid is not set ");
fclose($log);
}

if (isset($this->request->post['akey'])) {
$akey = $this->request->post['akey'];
} else {
$akey = '0';
$file="log.txt";
$log=fopen($file,'a');
fwrite($log,"\n akey is not set ");
fclose($log);
}
.
.
.
}

0

Решение

Может быть, попытаться дать атрибуты имен вашим элементам формы:

<div id="tab-products" class="tab-content">
<form  method="post" enctype="multipart/form-data" id="form2">

<div class="buttons"><div class="left">
<input name = "products" type="button" value="<?php echo $button_add_products; ?>" id="pselect" class="button" />
<input name = "cart" type="button" value="<?php echo $button_add_all_cart; ?>" id="addallltocart" onclick="addAllToCartProject();" class="button" />
<input name = "print" type="button" value="<?php echo $button_print; ?>" id="printproject" class="button" />
</div></div>
<div class="cart-info">
<table>
.
.
.
</table>
<input type="hidden" name="akey" value="<?php echo $akey; ?>" />
<input type="hidden" name="eid" value="<?php echo $eid; ?>" />
</form>

</div>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]