簡體   English   中英

Joomla和JS; 將數據從表單發送到控制器

[英]Joomla & JS; Sending data from form to Controller

我在創建表單時遇到了麻煩,並嘗試通過單擊提交按鈕時調用的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中,將讀取它以在組件com_guru中的控制器guruAuthor運行方法(任務) saveFeedback()

我遇到的問題是,如何讀取剛剛通過HTML請求發送的數據? 我正在嘗試類似$user_id = JRequest::getVar("user_id"); 但是,每當我嘗試回顯或轉儲時,它都會返回給我,但為空。 不是我在JavaScript console.log(user_id);轉儲的值console.log(user_id);

JRequest棄用

改用JInput。 讀取- 使用JInput檢索請求數據

在您提到的代碼中-如果正在調用控制器功能,請嘗試以下代碼-

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

我希望這有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM