以表单形式传递Javascript变量

以表单形式传递Javascript变量,javascript,html,forms,Javascript,Html,Forms,我是javascript新手,我很难解决脚本中的一个问题。 我希望在单击提交表单到php脚本时传递变量“outVal”。 “outVal”的值将从脚本中的“output”值中获得。 我不知道如何将“output”的值传递给“outVal”。 我一直在寻找解决方案,并尝试了每一种方法,但都不起作用。 也许有人能帮我找到一个合适的解决办法。 我的代码如下: 注意:两个代码位于同一文件中 HTML: 文件名: Javascript: <script> (function() {

我是javascript新手,我很难解决脚本中的一个问题。 我希望在单击提交表单到php脚本时传递变量“outVal”。 “outVal”的值将从脚本中的“output”值中获得。 我不知道如何将“output”的值传递给“outVal”。 我一直在寻找解决方案,并尝试了每一种方法,但都不起作用。 也许有人能帮我找到一个合适的解决办法。 我的代码如下: 注意:两个代码位于同一文件中

HTML:


文件名:

Javascript:

<script>
(function() {
    var jsoneditor;
    // Divs/textareas on the page
    document.getElementById('output').style.display = 'none';
    var $output = document.getElementById('output');
    var $editor = document.getElementById('editor_holder');
    var $outVal =  document.getElementById('outVal');


    var $jsonschema = <{$applyProcessJsonSchema}>;

    var reload = function(keep_value) {
        var $startvalue = (jsoneditor && keep_value)? jsoneditor.getValue() : <{$applyProcessRequestData}>;
        if(jsoneditor) jsoneditor.destroy();
        jsoneditor = new JSONEditor($editor,{
            ajax: true,
            schema: $jsonschema,
            startval: $startvalue,
            disable_array_add: true,
            disable_array_delete: false,
            disable_array_reorder: true,
            disable_edit_json: true,
            disable_properties: true
        });

        // When the value of the editor changes, update the JSON output and validation message
        jsoneditor.on('change',function() {
            var json = jsoneditor.getValue();
            $output.value = JSON.stringify(json,null,2);
            var validation_errors = jsoneditor.validate();
            if(validation_errors.length) {
                var error = JSON.stringify(validation_errors,null,2);
                alert("Validation Error" + error);
                reload(true);
            }
        });
        $outVal.value = $output.value;
    };
    reload();
})();

function applySubmit() {
    var $output = document.getElementById('output');
    var $outVal =  document.getElementById('outVal');
    $outVal.value = $output.value;
}
</script>

(功能(){
var-jsoneditor;
//页面上的Divs/text区域
document.getElementById('output').style.display='none';
var$output=document.getElementById('output');
var$editor=document.getElementById('editor_holder');
var$outVal=document.getElementById('outVal');
var$jsonschema=;
var reload=函数(保留值){
var$startvalue=(jsoneditor&&keep_值)?jsoneditor.getValue():;
if(jsoneditor)jsoneditor.destroy();
jsoneditor=新的jsoneditor($editor{
阿贾克斯:没错,
模式:$jsonschema,
startval:$startvalue,
禁用\u数组\u添加:true,
禁用\u数组\u删除:false,
禁用\u数组\u重新排序:true,
禁用\u编辑\u json:true,
禁用_属性:true
});
//当编辑器的值更改时,更新JSON输出和验证消息
jsoneditor.on('change',function()){
var json=jsoneditor.getValue();
$output.value=JSON.stringify(JSON,null,2);
var validation_errors=jsoneditor.validate();
if(验证错误长度){
var error=JSON.stringify(验证错误,null,2);
警报(“验证错误”+错误);
重新加载(真);
}
});
$outVal.value=$output.value;
};
重新加载();
})();
函数applySubmit(){
var$output=document.getElementById('output');
var$outVal=document.getElementById('outVal');
$outVal.value=$output.value;
}

提交表单之前,请调用
applysubmit
函数,它会修改表单值,请检查下面的代码,将
onsubmit
事件添加到表单元素

<form action="./applyProcess.php" method="post" onsubmit="return applySubmit();" enctype="multipart/form-data">


function applySubmit() {
        var $output = document.getElementById('output');
        var $outVal =  document.getElementById('outVal');
        $outVal.value = $output.value;
        return true;
    }

函数applySubmit(){
var$output=document.getElementById('output');
var$outVal=document.getElementById('outVal');
$outVal.value=$output.value;
返回true;
}

在输入元素中包含
名称
,这将使它们在表单提交时发送(注意,它会获得
)。您是否尝试过只设置一些默认值的
$\u POST[“outVal”]
?哦,对不起,我不清楚我想做什么。我想在javascript中获取“output”的值,然后将其传递给“outVal”,然后我将在php文件中使用$_POST['outVal']来获取它。我已经更新了我的问题。很抱歉造成混淆。我尝试发送“outVal”的默认值,当我使用$\u POST['outVal']时可以得到该值。我尝试了您的解决方案,但在php文件中使用$\u POST['outVal']时没有得到“outVal”的值。请从您的phpi尝试的var\u转储($\u POST)中尝试var\u转储($\u POST)或print\r($\u POST),结果是:
array(5){[“提交”]=>string(6)“上传”[“hashAlgo”]=>string(7)“SHA-256”[“tempDirName”]=>string(56)”/var/www/html/xoops/modules/frontend/cache/5426b2587c138”[“op”]=>string(6)“上传”[“outVal”]=>string(0)”}
修改此函数,使表单不会提交,您可以检查textarea和隐藏字段的值,请检查函数applySubmit(){var$output=document.getElementById('output');var$outVal=document.getElementById('outVal');$outVal.value=$output.value;返回false;}我确实得到了“outVal”的值。我使用了alert并打印了“outVal”的值,它是
{“ProcessApplicationInfo”:{“ProcessApplicationList”:[{“ProcessId”:“process#01”,“InputParameter”:{“sign#u type”:“xxxx”},{“ProcessId”:“process#02”,“InputParameter”:{“enc type”:“xxxx”}}
但当我尝试在php文件中访问它时,仍然无法获取数据。
<form action="./applyProcess.php" method="post" onsubmit="return applySubmit();" enctype="multipart/form-data">


function applySubmit() {
        var $output = document.getElementById('output');
        var $outVal =  document.getElementById('outVal');
        $outVal.value = $output.value;
        return true;
    }