Joomla& JS;将数据从表单发送到Controller

时间:2016-08-18 12:59:53

标签: javascript php html joomla

我在创建表单时遇到问题,并尝试通过JavaScript方法将数据重定向到其他位置,只要单击提交按钮,我就会调用该方法。

首先发生的事情是创建并填写表单,然后用户将点击HTML生成的按钮,其中包含以下操作:

onclick="javascript:saveEssayScore(<?php echo $key . "," . $pid; ?>);"

其次,读取并执行脚本文件。代码如下:

<script type="text/javascript" language="javascript">
document.body.className = document.body.className.replace("modal", "");

function saveEssayScore(key, pid){

    var user_id = document.getElementById("user-"+key).value;
    console.log("user " + user_id);
    var grade = document.getElementById("grade-"+key).value;
    console.log("grade " + grade);
    var teacher_answer = document.getElementById("feedback-"+key).value;
    console.log("teacher_answer " + teacher_answer);
    var question_id = document.getElementById("question-"+key).value;
    console.log("question_id " + question_id);
    var quiz_id = document.getElementById("quiz-"+key).value;
    console.log("quiz_id " + quiz_id);

    var req = new Request.HTML({
        method: 'post',
        url: "<?php echo JURI::base();?>index.php?option=com_guru&controller=guruAuthor&task=saveFeedback&tmpl=component&format=raw",
        data: { 'pid' : pid, 'user_id' : user_id, 'grade' : grade, 'teacher_answer' : teacher_answer, 'question_id' : question_id, 'quiz_id' : quiz_id},
        onSuccess: function(response, responseElements, responseHTML){
           alert('yeyy');
        }
    }).send();
}

现在,在URL中,读取它以在组件saveFeedback()中的控制器guruAuthor中运行方法(任务)com_guru

我遇到的问题是,如何读取我刚刚通过HTML请求发送的数据?我正在尝试像$user_id = JRequest::getVar("user_id");这样的东西但是每当我试图回声或转储时,它都会返回给我但是空洞。不是我在JavaScript console.log(user_id);

中转储的值

1 个答案:

答案 0 :(得分:0)

JRequest 已弃用

请改用JInput。阅读 - Retrieving request data using JInput

在您提到的代码中 - 如果正在调用控制器函数,请尝试使用此代码 -

$jinput = JFactory::getApplication()->input;
$user_id = $jinput->get('user_id', '', 'INT');

我希望这会有所帮助。