Post Prestashop 表单 Ajax - Tools::getValue()

Post Prestashop Form with Ajax - Tools::getValue()

你好,我想用 ajax 将表单保存到 prestashop 数据库中,但我遇到了一些困难。让我告诉你我的尝试。 HTML 表格:

<form action="" method="POST" class="">
    <textarea name="question_content" row="4" class="form-field"></textarea>
    <button type="submit" name="saveQuestion" id="question_ajax_save" class="button-standard">Frage abschicken</button>
</form>

JS:

$("#question_ajax_save").click(function(event) {
    event.preventDefault();
    var question = $("input[name=question_content]").val();
    if (question !==''){
        $.ajax({
            type: 'POST',
            url: baseUri + 'modules/genzo_questions/ajax.php',
            data: {
                save_question: 1,
            },
            datatype: 'json',
            success: function (response) {

                response = $.parseJSON(response);

                if (response.status === false){
                    // Do something
                }
                else {
                    // Do something
                }
            }
        });
    }
});

PHP桥:

if (Tools::getValue('save_question')==1) {
    echo json_encode($genzo_question->ajaxSaveQuestion());
}

在我的方法 ajaxSaveQuestion() 中,我想使用 Tools::getValue('question_content')。但它是空的。为什么是这样?我可以用 "data:" 发送它,但在我的方法中我也需要 Tools:getValue('id_product') ,它也是空的。

简而言之:如何将 Tools::getValue('') 与 Ajax Post 一起使用?

您需要将此添加到您的 ajax.php 文件中:

require_once dirname(__FILE__) . '/../../config/config.inc.php';
require_once dirname(__FILE__) . '/../../init.php';

然后您可以使用 prestashop 函数,例如:Tools::getValue('')

我认为您忘记在代码中添加 question_content:

$("#question_ajax_save").click(function(event) {
    event.preventDefault();
    var question = $("input[name=question_content]").val();
    if (question !==''){
        $.ajax({
            type: 'POST',
            url: baseUri + 'modules/genzo_questions/ajax.php',
            data: {
                save_question: 1,
                question_content: question
            },
            datatype: 'json',
            success: function (response) {

                response = $.parseJSON(response);

                if (response.status === false){
                    // Do something
                }
                else {
                    // Do something
                }
            }
        });
    }
});