【问题标题】:OnClick Send To AjaxOnClick 发送到 Ajax
【发布时间】:2013-05-21 04:37:42
【问题描述】:

我正在尝试完成一些 ajax 请求以将文本区域插入数据库而不刷新。这是我的代码:

HTML:

<textarea name='Status'> </textarea>
<input type='button' onclick='UpdateStatus()' value='Status Update'>

JS:

function UpdateStatus(Status)
    {
    var Status = $(this).val();

        $(function()
        {
            $.ajax({
                url: 'Ajax/StatusUpdate.php?Status='.Status, data: "", dataType: 'json'
            });

        });
    }

我的问题:

1) 如何将文本区域的内容发送到onclick函数中?

2) 我如何转义/urlencode 等。所以它保留换行符

【问题讨论】:

  • 第一个 . 应该是 + in url:'Ajax/StatusUpdate.php?Status='.Status, data: "", dataType: 'json',因为它的 javascript 不是 PHP。
  • 大家请把-1的原因放在做点有用的事情上。
  • @imsiso 其次?
  • 其次你的第二个问题是什么?

标签: javascript jquery html ajax


【解决方案1】:
<textarea name='Status'> </textarea>
<input type='button' value='Status Update'>

您的代码几乎没有问题,例如使用. 进行连接

试试这个 -

$(function () {
    $('input').on('click', function () {
        var Status = $(this).val();
        $.ajax({
            url: 'Ajax/StatusUpdate.php',
            data: {
                text: $("textarea[name=Status]").val(),
                Status: Status
            },
            dataType : 'json'
        });
    });
});

【讨论】:

  • 这会将按钮名称“状态更新”输入到我的数据库列中,其中文本区域内容应该是
  • 寻找 $_GET['Status'];
  • 在这种情况下你需要$_GET['text']
  • @SophieMackeral .. 正如 Philipp 已经提到的.. 您可以使用 $_GET['text'] 获取 textarea 内容,使用 $_GET['Status'] 获取 Status
【解决方案2】:

尝试并工作。你正在使用,

<textarea name='Status'> </textarea>
<input type='button' onclick='UpdateStatus()' value='Status Update'>

我正在使用 javascript ,(不了解 php), 在 textarea 中使用 id ="status" 之类的

<textarea name='Status' id="status"> </textarea>
<input type='button' onclick='UpdateStatus()' value='Status Update'>

然后调用 servlet 将状态发送到后端以使用您喜欢的任何结构(如 Java 中的 MVC 或其他任何结构)进行更新,就像在脚本标签中的 UI 中一样

<srcipt>
function UpdateStatus(){

//make an ajax call and get status value using the same 'id'
var var1= document.getElementById("status").value;
$.ajax({

        type:"GET",//or POST
        url:'http://localhost:7080/ajaxforjson/Testajax',
                           //  (or whatever your url is)
        data:{data1:var1},
        //can send multipledata like {data1:var1,data2:var2,data3:var3
        //can use dataType:'text/html' or 'json' if response type expected 
        success:function(responsedata){
               // process on data
               alert("got response as "+"'"+responsedata+"'");

        }
     })

}
</script>

而jsp就像

the servlet will look like:   //webservlet("/zcvdzv") is just for url annotation
@WebServlet("/Testajax")

public class Testajax extends HttpServlet {
private static final long serialVersionUID = 1L;
public Testajax() {
    super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    String data1=request.getParameter("data1");
    //do processing on datas pass in other java class to add to DB
    // i am adding or concatenate
    String data="i Got : "+"'"+data1+"' ";
    System.out.println(" data1 : "+data1+"\n data "+data);
    response.getWriter().write(data);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
}

}

【讨论】:

    猜你喜欢
    • 2017-02-06
    • 1970-01-01
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    • 2017-01-15
    • 2023-03-20
    • 1970-01-01
    • 2013-11-10
    相关资源
    最近更新 更多