Я создал страницу регистрации в Facebook на своем сайте.
У меня есть этот код:
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js#appId=123456789&xfbml=1"></script>
<fb:registration redirect-uri="http://localhost/landing/page/"
fields="[
{'name':'name'},
{'name':'first_name'}, {'name':'last_name'},
{'name':'birthday'},
{'name':'gender'},
{'name':'location'},
{'name':'email'},
{'name':'user_name', 'description':'new username', 'type':'text'}
]"
onvalidate="validate_async"></fb:registration>
считают, что facebook appId и redirect-uri верны.
и затем:
<script>
function validate_async(form, cb) {
$.getJSON('http://graph.facebook.com/' + form.user_name + '?callback=?',
function(response) {
if (response.error) {
// Username isn't taken, let the form submit
cb();
}
cb({user_name: 'That username is taken'});
});
}
</script>
Я хочу проверить асинхронное имя пользователя, на самом деле все нормально. но когда я пытаюсь проверить, существует ли "user_name" в моей базе данных, что-то происходит.
Я изменяю эту строку
$.getJSON('http://graph.facebook.com/' + form.user_name + '?callback=?',
в
$.getJSON('http://localhost/landing/page/fb_user/' + form.user_name + '?callback=?',
Я хочу знать, каков правильный формат данных json, передаваемых в качестве ответа ajax, чтобы мои данные могли быть правильно проверены. или, может быть, я получил ошибку в своем коде?
и для моего 'http://localhost/landing/page/fb_user/' я делаю что-то вроде этого:
$user_name = $_GET('user_name');
$data = array();
$q = "SELECT * FROM 'table' WHERE user_name='$user_name'";
//consider above lines are correct to shorten the code
if($q->num_rows()) { //if user_name exist in database
$r = $q->row();
$data['user_name'] = $r->user_name;
} else {
$data['error'] = "true";
}
echo json_encode($data);
пока что я получил эту ошибку из консоли firebug
invalid label
{"user_name":"mdennisa"}
или
invalid label
{"error":"true"}
Мое ожидаемое решение должно быть уведомлением о проверке, если пользователь существует, он будет отображать «это имя пользователя занято», а если пользователь не существует, он ничего не будет отображать.
примечание: я использую jquery 1.5.2,
ссылка: http://developers.facebook.com/docs/plugins/registration/advanced/