你可以使用ajax函数将一个变量从jsp发送到一个servlet并在没有表单的情况下同时打开它吗? [复制]

Posted

技术标签:

【中文标题】你可以使用ajax函数将一个变量从jsp发送到一个servlet并在没有表单的情况下同时打开它吗? [复制]【英文标题】:Can you use an ajax function to send a variable from jsp to a servlet and open it at the same time without a form? [duplicate] 【发布时间】:2021-04-29 23:16:35 【问题描述】:

我正在尝试设置一个按钮将调用的函数并激活 ajax 命令以将名为 [finalstring] 的变量发送到 servlet,同时调用 servlet 打开。

这是代码。

function send()
    var finalstring = newstrings.join(',');
    finalstring = finalstring.substring(0,finalstring.length -3);
    $.ajax(
        type: "post",
        url: "arraycomp",
        data: "Value": finalstring,
        success: function (data) 
            if (data == "0")
                alert("Input Submitted!");
             else 
                alert("ERROR: Failed to submit Input.")
            
        
    );

但是,这里的问题是 1. 根本没有读取数据值,因为我输入的 if 和 else 语句一直在读取错误,发送了提交输入失败的警报。 2. 同时,由于页面仍在同一个jsp中,调用似乎不起作用。

所以我想知道这个函数是否有问题,因为其余代码完全没问题。谁知道更多关于ajax的可以请你指出我在这里做错了什么?

【问题讨论】:

同时显示您的后端代码。另外,问题在成功函数内部,同时调用 servlet 打开是什么意思。 我正在尝试让 ajax 将变量作为“值”发送到我的 servlet,同时也移动到 servlet,就像表单的操作如何移动到 ' 上的指定文件一样提交'。 jsp 代码很多,因为我为 if 和嵌套 if 语句制作了许多函数。我会尽量限制在需要的范围内。 【参考方案1】:

这是我用来进行输入的“表格”。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>TextArea Input</title>
</head>
<body>

<form>
Input Area: Format for input = FirstName,LastName,8DigitIDNum (Comma included)
<br/>
<TEXTAREA id = "textarea" COLS = "40" ROWS = "10" onkeypress = "arraybuild(event, this)"></TEXTAREA>
<br/>
<br/>
<input type="button" id="submit" value="Submit" disabled = "true" onclick="send(this)"/>
<br/> <br/>
<input type="button" value="Reset" onclick = "unlock(this)"/>
<br/> <br/>
</form>

<script type="text/javascript">

这是主要代码,它是一个文本区域的函数,每次我按下回车键时都会输入一个数组。 finalstring 应该是压缩成字符串的数组,以便我发送到 servlet。

var input;
var uneditstring;
var editremovespace;
var newstrings;

function arraybuild(e)
    var input = (e.keyCode ? e.keyCode : e.which);
    if (input == 13)//Note: key number 13 is Enter Key
        uneditstring = document.getElementById("textarea").value;
        editremovespace = uneditstring.split(" ").join("");
        newstrings = editremovespace.replace(/\n/g, ",").split(",");
        console.log(newstrings)
        if(newstrings.includes('-1'))
        newstrings.pop();
        console.log(newstrings)
            if(checkValues(newstrings))
                if(checkID(newstrings))
                    if(checkNames(newstrings))
                        document.getElementById("textarea").readOnly = true;
                        document.getElementById("submit").disabled = false;
                        alert('You entered -1, you can now submit the inputted values.')
                        alert('If you want to reopen the text area, click Reset.')
                    else
                        alert('ERROR: Names are not valid.');
                        alert('ERROR: Due to containing a number or being over 255 characters.');
                    
                else
                    alert('ERROR: One of the IDs is not Valid.');
                    alert('ERROR: Due to starting with a double zero, \nhaving a letter in them, \nor being longer than 8 digits.');
                
            else
                alert('ERROR: Note enough values inputted. At least 3 Values are required.');
            
        else
            console.log('Not yet pressed -1');
        
    

这些代码都没有给我任何错误。 PS:如果还是太长,请见谅。

【讨论】:

以上是关于你可以使用ajax函数将一个变量从jsp发送到一个servlet并在没有表单的情况下同时打开它吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

从 servlet 获取数据到 JSP 并通过 ajax 再次将该数据发送到另一个 servlet

将PHP变量发送到javascript函数[重复]

用ajax发送参数

无法使用 Ajax 将多部分文件从 JSP 传递到 Spring MVC 中的控制器

使用 jQuery ajax 函数将 php 值发送到 php 函数

如何通过 AJAX 将 jquery 对象数据发送到 php?