2013-12-05 2 views
0

Я пытаюсь научиться использовать AJAX. Я удалил большую часть сложности программы, чтобы просто изолировать проблему, которую у меня есть. Таким образом, у меня есть текстовая область, а ниже - div, у которого есть печать «STATUS». На кнопке submit с использованием AJAX я хочу изменить слово «STATUS» на значение моей переменной, статус, который в этом случае должен быть «УСПЕХ».AJAX - кнопка Отправить, чтобы обновить форму

Что происходит, вместо этого, когда я нажимаю, он печатает слово 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> 
+0

'.live()' не рекомендуется; используйте ['.on'] (http://api.jquery.com/on) – Blazemonger

ответ

0

Я думаю, что ваша находка пуста. Попробуйте заменить на

status = $(data).text() 
0

Я не уверен, что вы используете .find() правильно. он используется в элементах html и ожидает, что будет передан селектор jquery или элемент или объект jquery.

здесь более подробную информацию http://api.jquery.com/find/

, что вы хотите, чтобы получить текст ответа, поэтому присвоить АЯКС вызов переменной:

xmlhttp = $.ajax({ 

затем на успех использовать текст ответа:

status = xmlhttp.responseText; 
0

Ваш код работает отлично для меня, при условии, что:

(я) добавить недостающую запятую из строки:

данных: нуль,

(б) тип содержимого, возвращаемый обработчиком РНР текст/XML

Смежные вопросы