AJAX-按钮提交以更新表单


AJAX - Button Submit to update a form

我正在尝试学习使用AJAX。我去掉了程序的大部分复杂性,只是为了隔离我遇到的问题。所以我有一个文本区域,在它下面有一个div,上面打印着"STATUS"。在使用AJAX提交按钮时,我想将单词"STATUS"更改为我的变量STATUS的值,在这种情况下应该是"SUCCESS"。

相反,当我点击时,它会打印出单词STATUS。当我点击提交按钮时,似乎什么都没有发生。你知道我做错了什么吗?

$(document).ready(
    function () {
        $('#sub').live('click',
            function () {
                url = 'http://whatever.php'
                success = "Success!"
                $.ajax({
                    url: url,
                    type: 'POST',
                    data: null
                    dataType: 'xml',
                    async: false,
                    success: function (data, statusText, reqObj) {
                        status = $(data).find('status').text()
                        if (status == 'SUCCESS') {
                            $('#succ').html(status)
                        } //if( status == 'SUCCESS' ) {
                        else {
                            msg = $(data).find('msg').text()
                            alert('NOT ADDED: ' + msg)
                            return
                        } // else
                    } //function()
                }) //$.ajax( {
            } /* function */ ) //live(
    } //function()
) //$(document).ready

HTML:

<div id="buttonArea">
<textarea name="txtarea" cols=80 rows=30>>THIS TEXT BOX
             IS USED FOR THINGS I WILL WORK ON LATER
</textarea><br/>    
<input type=submit value='Submit Textbox Info!' id='sub'>
</div>
<div class="float-left" id='succ'>STATUS</div>

我认为您的查找结果为空。尝试用替换

status = $(data).text()

我不确定你使用.find()的方式是否正确。它用于html元素,并期望传递一个jquery选择器或元素或jquery对象。

以下是更多详细信息http://api.jquery.com/find/

您想要的是获得响应文本,因此将ajax调用分配给一个变量:

xmlhttp = $.ajax({

然后在成功时使用您的回复文本:

status = xmlhttp.responseText;

您的代码对我来说很好,前提是:

(i) 您添加行中缺少的逗号:

数据:空,

(ii)php处理程序返回的内容类型是text/xml