Как поставить AJAX в этом PHP-код? - PullRequest
2 голосов
/ 27 января 2011

Мне нужна помощь, я создал этот php-скрипт и он отлично публикуется, но, как и ожидалось, он обновляет всю страницу, и мне нужно обновить только этот php-файл и вернуть результаты выбранного города и параметра selected = "selected" в форме, так что я могу использовать его столько раз, сколько я хочу, но с частичным обновлением, а не весь сайт. Заранее спасибо. Вот код:

<?php
$city='London';
$selected= array('selected="selected"','','');
if(isset($_POST["cities"])){
    $city=$_POST["cities"];
    switch($city)
    {
        case 'London': $selected[0]='selected="selected"'; $selected[1]=''; $selected[2]=''; break;
        case 'Manchester': $selected[0]=''; $selected[1]='selected="selected"'; $selected[2]=''; break;
        case 'Liverpool': $selected[0]=''; $selected[1]=''; $selected[2]='selected="selected"'; break;
        default: break;
    }
}
?>
<html>
<head>
</head>
<body>
<div id="change">
<form name="ch_city" id="ch_city" method="post">
    <select name="cities" id="cities" onchange="document.ch_city.submit();">
        <option value="London" <?php echo $selected[0]; ?>>London</option>
        <option value="Manchester" <?php echo $selected[1]; ?>>Manchester</option>
        <option value="Liverpool" <?php echo $selected[2]; ?>>Liverpool</option>
    </select>
</form>
<p>You've chosen: <?php echo $city; ?>.</p>
</div>
</body>
</html>

Ответы [ 3 ]

1 голос
/ 27 января 2011

Джон, ваша проблема немного сложнее, чем кажется.

Основная проблема, которую я вижу здесь, - это структура вашего кода.Хотя очень часто можно увидеть, что PHP смешан с HTML, а некоторые JavaScript-файлы включены в микс в одном файле, но это рецепт катастрофы, и он не масштабируется.В этом случае он не масштабируется, чтобы сделать страницу более AJAX-у.

Вы должны отделить свой PHP от своего HTML и свой HTML от своего JavaScript.Под отдельным я подразумеваю, что у вас должен быть PHP-файл, содержащий ТОЛЬКО PHP, и HTML-файл, содержащий ТОЛЬКО HTML (за исключением некоторых PHP-инструкций или других шаблонных директив, например, чтобы сказать это, «этот тег параметров долженбыть выбранным ".)

Я бы не советовал вам пытаться реализовать все это самостоятельно, я бы посоветовал взглянуть на такие фреймворки, как CakePHP, которые делают это разделение для вас, и направляют / заставляют васделай вещи "правильно".Основные фреймворки имеют довольно большие сообщества и хорошо документированы, поэтому, когда вы сталкиваетесь с такой проблемой, как «как мне AJAX это действие?»Скорее всего, кто-то уже сделал это, и это поддерживается фреймворком.

Извините, что не отвечаю на ваш актуальный вопрос, но я чувствую, что этот ответ поможет вам с дальнейшими проблемами в будущем.

1 голос
/ 27 января 2011

При работе с AJAX, особенно для начинающих, настоятельно рекомендуется использовать библиотеку JavaScript, которая обеспечит кросс-браузерную совместимость вашего кода и выполнит большую часть грязной работы. jQuery - это, как правило, хорошее место для начала.Документация отличная и поможет вам разобраться с вашими потребностями в JavaScript.Основная идея заключается в том, что вы можете загружать данные с сервера без обновления страницы.Удачи!

0 голосов
/ 27 января 2011

Я думаю, вы неправильно поняли, что такое Ajax. Ajax - это, по сути, пара функций JavaScript. Javascript - это технология на стороне клиента, и поэтому его нельзя «поместить в php», поскольку PHP выполняется на стороне сервера.

РЕДАКТИРОВАТЬ: Как и плакат передо мной, я рекомендую проверить Jquery, который помогает целую кучу для начинающих веб-пользователей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...