AJAX - 按钮提交以更新表单

时间:2013-12-05 21:01:16

标签: javascript php jquery html ajax

我正在尝试学习使用AJAX。我删除了程序的大部分复杂性,以便找出我遇到的问题。所以我有一个文本区域,下面是一个打印出“STATUS”的div。在使用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>

3 个答案:

答案 0 :(得分:0)

我认为你的发现是空洞的。尝试用

替换
status = $(data).text()

答案 1 :(得分:0)

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

这里有更多详情http://api.jquery.com/find/

您想要的是获取您的回复文本,因此请将ajax调用分配给变量:

xmlhttp = $.ajax({

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

status = xmlhttp.responseText;

答案 2 :(得分:0)

您的代码适用于我,条件是:

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

data:null,

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