2012-06-22 3 views
0

У меня возникает странная ошибка при попытке установить связь между страницами с помощью jQuery и AJAX. Я просто не могу заставить функцию $ .post() работать!

$(document).ready(function() { 
    $('#form').submit(function() { 
     $.post('test.php', {'name': 'joey', 'age': 12}, function(data){ 
        alert(data); 
     }); 

     return false; 
    }); 
});  

test.php:

<php? 
    print_r($_POST); 
?> 

, что происходит, когда я делаю это я получаю предупреждение [объекта XMLDocument], но если добавить «текст», в качестве последнего параметра в должности, он предупреждает с полным кодом php файла.

Моя проблема, когда я называю:

$.post('test.php', {'name': 'joey', 'age': 12}, function(data){ 
       $('#content').html(data); 
     }); 

это вызывает ошибку на поджигатель. «content» - это div. Он работает, когда я делаю .html ('test'), но не, если я делаю .html (data).

Любая идея, что я делаю неправильно?

EDIT: здесь папка Dropbox со всем моим проектом (например, 3 файлов), если кто-то может потратить 3-4 минуты, глядя через него, это помогло бы мне тонну! Я застрял здесь на пару дней

https://www.dropbox.com/sh/ns73titud46kea7/aElaYx728G

+0

Это может быть, что 'data' не является действительным HTML. –

+0

console.log ваши данные и проверьте, ожидаются ли они. –

+0

Используйте правильный синтаксис php:

ответ

2
<php? 
    print_r($_POST); 
?> 

следует читать

<?php 
    print_r($_POST); 
?> 

Я предполагаю, что PHP интерпретируется как узел XML, но, очевидно, не является действительным html

+0

Это была опечатка, когда я набрал это, у меня действительно есть соответствующие теги php. извините за это:/ – nickelxk5

+0

@ nickelxk5 Я запустил ваш код, который вы опубликовали, и сначала получил ошибку, когда у меня не было разрешений, но потом оно работало без изменения какого-либо кода. Возможно, вам стоит попробовать еще раз. – matt3141

1

Не имеет значения, но попробуйте установить тип данных на 'html'

$.post('test.php', {'name': 'joey', 'age': 12}, function(data){ 
    $('#content').html(data); 
}, 'html'); 

Или попробуйте использовать .load()

$('#content').load('test.php', {'name': 'joey', 'age': 12}); 

вы также можете попробовать положить 12 в кавычки, просто правила вещи ...

$('#content').load('test.php', {'name': 'joey', 'age': '12'}); 
0

Я немного опоздал на ответ, но может быть, что у вас есть недопустимый json?

{'name': 'joey', 'age': 12} 

должен быть

'{"name": "joey", "age": "12"}' 
Смежные вопросы