Javascript обращается к php веб-серверу

0

У меня огромная проблема в моем приложении. У меня есть приложение, которое подключается к веб-сервису php и возвращает некоторые данные, когда я нажимаю кнопку. Единственная проблема: мой сервис не отвечает на меня, и я не могу понять, почему.

Я хочу отправить "Windesheim" на свой сервер, и сервер (теперь жесткий код) возвращает "Windesheim". Я не использую массив для моего теста. Я использую Google Chrome.

Это мой.html:

<html>
<head>
    <title>Ekiden</title>
    <script src="http://code.jquery.com/jquery-1.8.2.js"></script>
    <script type="text/javascript" src="_Script.js"></script>       
</head>
<body>
    <input id="team" type="text"/><input id="button" type="button" value="Go" />

    <div id="feedback"></div>
</body>
</html>

Это мой.js:

$('#button').click(function() {
var team = $('#team').val();

$.POST('_Dataserver.php', {team: team }, function(data) {
    $('#feedback').text(data);
});
});

И это мой.php:

<?php
header('Content-Type: application/json');

$teams = array
(
"Windesheim"=>array
    (
        // Naam, Leeftijd, Tijd, Afstand, Gemiddelde snelheid
        1 => array ('Alfred', 20, 0, 0, 0),
        2 => array ('Willem', 36, 0, 0, 0),
        3 => array ('Michael', 22, 0, 0, 0),
        4 => array ('Stefan', 27, 0, 0, 0),
        5 => array ('Timmy', 20, 0, 0, 0),
        6 => array ('Pascal', 20, 0, 0, 0)
    ),
"Deltion"=>array
    (
        // Naam, Leeftijd, Tijd, Afstand, Gemiddelde snelheid
        1 => array ('Simon', 21, 0, 0, 0),
        2 => array ('Manuel', 33, 0, 0, 0),
        3 => array ('Stephan', 29, 0, 0, 0),
        4 => array ('Marko', 42, 0, 0, 0),
        5 => array ('Nick', 23, 0, 0, 0),
        6 => array ('Achmed', 20, 0, 0, 0)
    ),
"Landstede"=>array
    (
        // Naam, Leeftijd, Tijd, Afstand, Gemiddelde snelheid
        1 => array ('Patrick', 20, 0, 0, 0),
        2 => array ('Mohammed', 18, 0, 0, 0),
        3 => array ('Wilson', 19, 0, 0, 0),
        4 => array ('Walie', 22, 0, 0, 0),
        5 => array ('Marco', 52, 0, 0, 0),
        6 => array ('Mohabie', 45, 0, 0, 0)
    )
);

// Als er teams worden opgevraagd
if (isset($_POST['team'])) 
{
    $team = $_POST['team'];
    if($team == 'Windesheim')
    {
        //echo json_encode($teams[$team]);
        echo json_encode('Windesheim');
    }
}
// Als er niks wordt opgevraagd
else 
{
    echo '';
}

?>
  • 0
    Как вы определяете, что «мой сервис не отвечает»?
  • 0
    Что говорит консоль вашего веб-браузера, когда вы пытаетесь это сделать? JS-консоль Webkit дает действительно хорошую информацию о AJAX-запросах, а также позволяет отслеживать их на вкладке сети. Убедитесь, что ваш сервер действительно поражен.
Показать ещё 3 комментария

2 ответа

3
Лучший ответ

Вам нужно обернуть код _Scripts.js в функции document.ready.

Ваш код выполняется до отображения DOM и, таким образом, $ ('# button') не возвращает никакого элемента.

_Scripts.js должен быть:

$(document).ready(function() {
    var team = $('#team').val();
    $.POST('_Dataserver.php', {team: team }, function(data) {
        $('#feedback').text(data);
    });
});
  • 0
    При этом я получаю следующую ошибку: Uncaught TypeError: Object function (selector, context) {// Объект jQuery на самом деле является просто «расширенным» конструктором init, возвращающим новый jQuery.fn.init (селектор, context, rootjQuery) ; } не имеет метода 'POST'
  • 0
    jQuery возвращает объект Promise, см. документацию: api.jquery.com/jQuery.post
0
$(document).ready(function() {
});

Указанный код отсутствует в вашем js-коде.

Также,

В PHP вы пытаетесь проверить значение "Windesheim" с запрошенным значением/сообщением,

if($team == 'Windesheim') {
    //echo json_encode($teams[$team]);
    echo json_encode('Windesheim');
}

Но в JS вы передаете значение пустым для идентификатора команды в html input type value as,

<input id="team" type="text"/>

Таким образом, он не печатает/не реагирует на что-либо с клиентской стороны php.

Чтобы решить, пожалуйста, измените значение '' на 'Windesheim' в HTML

(т.е.) <input id="team" type="text" value ="Windesheim"/>

  • 0
    Разве я не устанавливаю значение, когда я заполнил свое поле ввода и нажал кнопку?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню