|
|
|
| Загружаю при нажатии на ссылку Аяксом форму из файла usercitysel.php с селектами (список городов).
<div id="divUserCitySel">
<a href=\"javascript:{}\" onclick=\"usercitysel()\">Города</a>
</div>
<script>
function usercitysel() {
$.ajax({
url: "usercitysel.php",
beforeSend: function() {$('#divUserCitySel').html('<img src="images/loading.gif"/>');},
success: function(data){$("#divUserCitySel").html(data);},
error: function(){$("#divUserCitySel").html('Произошла ошибка.');}
});
}
</script>
|
Файл usercitysel.php:
<form action="???" method="post">
<select name="selcity"><option value="1">Москва</option><option value="2">Питер</option>....</select> (берется из БД MySql)
<input name="submit" type="submit" value="Выбрать"/>
</form>
|
Как при выборе города и нажатии на кнопку "Выбрать" в подзагруженной форме мне произвести обработку данных формы силами php и вывести результат на месте формы? | |
|
|
|
|
|
|
|
для: aetern
(18.04.2011 в 22:30)
| | >Как при выборе города и нажатии на кнопку "Выбрать" в подзагруженной форме мне произвести
>обработку данных формы силами php и вывести результат на месте формы?
Здесь перезагрузка страницы допустима или это тоже должен быть AJAX-вызов? | |
|
|
|
|
|
|
|
для: cheops
(18.04.2011 в 22:36)
| | перезагрузка страницы допустима только после обработки формы, а точнее после выполнения конечной функции:
setcookie("city",$_POST['selcity'],time()+77760000,"/")
|
| |
|
|
|
|
|
|
|
для: aetern
(18.04.2011 в 23:06)
| | Т.е. нужен все-таки AJAX-запрос? Так как POST-данные получить можно только отправив данные на сервер, а без перезагрузки это можно сделать только при помощи AJAX. Тогда проблема атрибута action отпадает (собственно и тэг <form> не требуется), вам на кнопку отправки нужно вешать еще один AJAX-обработчик, который возьмет данные из select и отправит их обработчику, потом дождется данных, установит cookie и произведет перезагрузку страницы. | |
|
|
|
|
|
|
|
для: cheops
(18.04.2011 в 23:18)
| | >вам на кнопку отправки нужно вешать еще один AJAX-обработчик, который возьмет данные из select и отправит их обработчику, потом дождется данных, установит cookie и произведет перезагрузку страницы.
Вот именно это мне и нужно. Как я понял из ответа - это можно сделать только на JS?
Подскажите, как взять данные из select и отправить их обработчику. | |
|
|
|
|
|
|
|
для: aetern
(18.04.2011 в 23:31)
| | Получить данные можно так
$('select[name=selcity]').val()
| А отправить можно по аналогии с обработчиком, который вы приводите в первом сообщении. | |
|
|
|
|
|
|
|
для: cheops
(18.04.2011 в 23:41)
| | ГЕНИАЛЬНО! Все получилось огромный респект мастеру cheops!
тока я использовал переменну в виде:
var cityVar = $('select[name=selcity]').attr('value');
|
подглядел здесь | |
|
|
|
|
|
|
|
для: aetern
(18.04.2011 в 22:30)
| | Тогда просто отошлите данные текущей странице, на которой предусмотрите обработчик (его можно включить при помощи require()), который помещает выбранный город в сессию
<?php
session_start();
...
if(!empty($_POST))
{
...
$_SESSION['city'] = intval($_POST['selcity']);
}
?>
| А форму выбора города выводите только в том случае, если в сессии не определена переменная $_SESSION['city']. | |
|
|
|