
12.03.2011, 18:39
|
Профессор
|
|
Регистрация: 14.10.2010
Сообщений: 376
|
|
Вызов функции
Всем привет. у меня 2 небольших вопроса.
1. Помогите с запуском функции после выполнения запроса. Ниже код, он запускается, после нажатия на на кнопку отправить в форме отправки данных. После того, как выполнился этот код, должна запуститься функция load(). Но почему-то этого не происходит. Помогите решить проблему пжл?
<script src="/jquery.js"></script>
<script>
$(document).ready(function()
{
$('#form').submit(function()
{
var name = $("#name").val();
$.ajax({
type: "POST",
url: "обработчик.php",
data: {name: name},
success: function(html)
{
$("#div").html(html);
}});
load();
return false;
});
});
function load()
{..код..}
</script>
2. Как сделать, чтоб во время выполнения запроса на ajax, да и не обязательно запроса, а вообще какой-нибудь функции на js появлялась картинка, а после его вополнения картинка скрывалась?
|
|

12.03.2011, 18:58
|
Аспирант
|
|
Регистрация: 04.03.2011
Сообщений: 87
|
|
1.не проще ли в success запустить вашу функцию load();?
и странно как то...отправка формы submit'ом и тут же ajax запрос?  хотелось бы посмотреть как оно вобще работает..но лениво
2.
для данного случая (т.е. ajax запрос) посмотрите http://api.jquery.com/jQuery.ajaxSetup/ если уж совсем лень будет искать, то опции такие же как и для $.ajax() http://jquerybook.ru/api/jQuery.ajax()-fn4.html. Перед отправкой - показать картику, после получения ответа - скрыть картинку.
3. если обычная функция, то в начале выполнения функции показываете свою картинку в конце скрываете.
в чем проблема по пункту №3 я не понимаю 
Последний раз редактировалось lalala, 12.03.2011 в 19:08.
|
|

12.03.2011, 19:01
|
Профессор
|
|
Регистрация: 14.10.2010
Сообщений: 376
|
|
lalala, спасибо. Насчёт показания и скрытия картинки сам догадался, пока ждал ответ))
|
|

13.03.2011, 19:24
|
Профессор
|
|
Регистрация: 14.10.2010
Сообщений: 376
|
|
Возникла ещё одна проблема и появился ещё один вопрос.
Сначало проблема.. При отправки первого сообщения на странице оно не появляется, а если отправить второе и более, то всё работает нормально.. В чём проблема, подскажите пожалуйста? Вот код
<script src="/jquery.js"></script>
<script>
$(document).ready(function()
{
$('#add_comm_form').submit(function()
{
var id_img = document.getElementById('ajax');
id_img.style.display = 'block';
var name = $("#name").val();
var mess = $("#mess").val();
$.ajax({
type: "POST",
url: "comm.php",
data: {name: name, mess: mess},
success: function(html)
{
$("#answer").html(html);
load_comm();
id_img.style.display = 'none';
}
});
return false;
});
});
function load_comm()
{
var id = $("#id_article").val();
$.ajax({
type: "POST",
url: "load.php",
data: {id: id},
success: function(html)
{
$("#load_comm").html(html);
}
});
}
</script>
<div id="load_comm"> </div>
<div id="answer"> </div>
<form id="add_comm_form">
Имя:<br>
<input type="text" name="name" id="name"><br>
Сообщение:<br>
<textarea rows=5 cols=25 id="mess" name="mess"></textarea><br>
<input type="hidden" id="id" name="id" value="'.abs(intval($id_article)).'">
<input type="submit" value="Отправить">
</form>
Вопрос. как отослать 2 или более запроса одновременно?
Последний раз редактировалось (Sandr), 14.03.2011 в 08:30.
|
|

14.03.2011, 08:31
|
Профессор
|
|
Регистрация: 14.10.2010
Сообщений: 376
|
|
а файлы load.php и comm.php просто формируют результат и делают запись в бд.
|
|

14.03.2011, 10:54
|
Аспирант
|
|
Регистрация: 04.03.2011
Сообщений: 87
|
|
попробуйте так
<script src="/jquery.js"></script>
<script>
$(document).ready(function()
{
$('#button_1').click(function()
{
$("#ajax").css({"display","block"})
var name = $("#name").val();
var mess = $("#mess").val();
$.ajax({
type: "POST",
url: "comm.php",
data: {name: name, mess: mess},
success: function(html)
{
$("#answer").html(html);
load_comm();
id_img.style.display = 'none';
}
});
});
function load_comm()
{
var id = $("#id_article").val();
$.ajax({
type: "POST",
url: "load.php",
data: {id: id},
success: function(html)
{
$("#load_comm").html(html);
}
});
}
});
</script>
<div id="load_comm"> </div>
<div id="answer"> </div>
<form id="add_comm_form">
Имя:<br>
<input type="text" name="name" id="name"><br>
Сообщение:<br>
<textarea rows=5 cols=25 id="mess" name="mess"></textarea><br>
<input type="hidden" id="id" name="id" value="'.abs(intval($id_article)).'">
<input type="button" id="button_1" value="Отправить">
</form>
|
|

14.03.2011, 22:33
|
Профессор
|
|
Регистрация: 14.10.2010
Сообщений: 376
|
|
Тоже не получилось( Попробовал в своём примере в начале тела функции load_comm() поставить alert('text'); и отправил ещё раз сообщение, алерт выскочил, но данные не грузятся((
|
|

15.03.2011, 15:11
|
Аспирант
|
|
Регистрация: 31.07.2010
Сообщений: 94
|
|
(Sandr),
- firebug, ку?!
открываешь консоль и смотришь что отправилось, а что пришло в ответ.
|
|

15.03.2011, 19:58
|
Профессор
|
|
Регистрация: 14.10.2010
Сообщений: 376
|
|
Сообщение от firstchild
|
(Sandr),
- firebug, ку?!
открываешь консоль и смотришь что отправилось, а что пришло в ответ.
|
Спасибо, немного прояснило проблему. Но не до конца. Данные приходят, но почему-то не выводятся((
|
|

15.03.2011, 20:06
|
Профессор
|
|
Регистрация: 14.10.2010
Сообщений: 376
|
|
Всё, понял в чём проблема, над решением как-нибудь сам подумаю)
|
|
|
|