我在创建表单时遇到问题,并尝试通过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);
答案 0 :(得分:0)
JRequest 已弃用
请改用JInput。阅读 - Retrieving request data using JInput
在您提到的代码中 - 如果正在调用控制器函数,请尝试使用此代码 -
$jinput = JFactory::getApplication()->input;
$user_id = $jinput->get('user_id', '', 'INT');
我希望这会有所帮助。