prestashop-使用ajax onclick创建新表单
prestashop-create new form with ajax onclick
嗨,我是prestshop 1.6的新手,我使用jquery的$。调用PHP脚本。当我点击按钮时,我想创建一个新表单这是我的代码:
在catproduct.php:
public function clickme(){
$html = '<a href="#" class="displayForm">Click me</a>
<div id="myFormm"></div>
<script type="text/javascript">
$( ".displayForm" ).click(function() {
$.ajax({
url: "'._MODULE_DIR_.$this->name.'/ajax.php",
context: document.body,
})
.done(function(data) {
$( "#myFormm" ).html( data );
alert( "Load was performed." );
});
})
</script>';
return $html;
}
public function renderForm()
{
$fields_form = array(
'form' => array(
'legend' => array(
'title' => $this->l('Add new category'),
'icon' => 'icon-cogs'
),
'input' => array(
array(
'type' => 'text',
'label' => $this->l('FCI'),
'name' => 'FCI',
),
),
'submit' => array(
'title' => $this->l('Save')
)
),
);
$helper = new HelperForm();
$helper->show_toolbar = false;
$helper->table = $this->table;
$lang = new Language((int)Configuration::get('PS_LANG_DEFAULT'));
$helper->default_form_language = $lang->id;
$helper->allow_employee_form_lang = Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') ? Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') : 0;
$this->fields_form = array();
$helper->identifier = $this->identifier;
$helper->submit_action = 'submitCatForm';
$helper->fields_value['FCI'] = 'ddddd';
$helper->currentIndex = $this->context->link->getAdminLink('AdminModules', false).'&configure='.$this->name.'&tab_module='
.$this->tab.'&module_name='.$this->name;
$helper->token = Tools::getAdminTokenLite('AdminModules');
return $helper->generateForm(array($fields_form));
}
ajax.php文件(ajax文件调用renderForm()函数来创建新表单):
require_once(dirname(__FILE__).'../../../config/config.inc.php');
require_once(dirname(__FILE__).'../../../init.php');
include_once('catproduct.php');
$module = new catproduct();
echo $module->renderForm();
done函数不返回任何值。请帮助我,我花了两天时间寻找解决方案
prestshop(前台)ajax调用示例:
$( document ).ready(function() {
var form = $('.MyForm');
form.submit(function(e) {
$.ajax({
type: 'POST',
url: '../modules/MyModule/controllers/front/MyFrontController.php',
data: $(this).serialize(),
dataType: 'json',
success: function(jsonData) {
console.log(jsonData);
}
});
e.preventDefault();
});
});
控制台显示结果。如果没有,说明php文件有问题。
下面是一个PHP文件示例:
<?php
include(dirname(__FILE__).'/../../../../config/config.inc.php');
include(dirname(__FILE__).'/../../../../init.php');
include(dirname(__FILE__).'/../../classes/MyUsefulModuleClass.php');
if (Tools::getIsset('my_useful_id')) {
echo Tools::jsonEncode('Ajax return fine')); }?>
检查是否调用了config.inc.php和init.php在处理它时,总是要console.log()你的结果。
然后尝试分离表单创建,您可以只使用HTML,不确定是否可以使用helper创建表单,并使用Ajax显示它。我认为大多数模块只使用HTML
相关文章:
- 在新表单上使用JavaScript创建多个共享点项目,但将下一页加载延迟到全部创建
- 动态表行,将单击事件委派给新添加的元素
- 点击按钮,用javascript生成新表单
- 添加新表单时,如何保持表单的焦点
- 我想创建一个添加新表单的按钮
- 如何用数据预加载表单(新操作),然后在Ruby on Rails中提交
- 如何获取新表行仅当先前输入的一行不为空时才单击
- 打开新窗口,不在选项卡中,单击表行时组(钛)
- 新表单-嵌入表单集合-Symfony2
- 按下提交按钮后,用相同的颜色框打开一个新表单
- 附加一个新表单,并在输入文本时提交
- 编辑表单和新表单添加文本抛出angular js
- 如果条件为 false,则使用 jquery 阻止 SharePoint 2010 中列出新表单中的默认值
- jgrid自定义添加新表单
- 如何使用javascript或jquery为新表单输入获取更新的json文件
- 在angularjs中动态添加新表单
- 如何单击表行中的图标并重定向到新的“详细信息页”;在angularjs
- 在页面重定向后保留表单值,使用JavaScript在新表单中显示这些值
- 如何在注册时显示新表单
- 单击表复选框时不打开新页