Четко сформулированная задача предыдущего вопроса
Здравствуйте, я уже задавал ранее этот вопрос, но меня попросили четко сформулировать задачу , поэтому прошу не обвинять меня в спаме, а помочь мне разобраться
Есть функция которая отправляет содержимое формы на сервер и выводит html ответ <script type="text/javascript" src="http://scriptjava.net/source/scriptjava/scriptjava.js"></script> <div class="form_test" > <form id="test_form1" class="test_form" method="post" enctype="multipart/form-data" onSubmit=""> <input class="file_form" class="btn_photo_1" type="file" name="upload_file" /> <input type="hidden" name="id_article" value="1"> <input type="hidden" name="id_photo" value="photo1"> </form> <div class="result" id="result1"style="position:relative;"></div> </div>
$('.form_test').change(function(){
var form = $(this).find('.test_form').attr('id');
SendFile();
function SendFile() {
//отправка файла на сервер
$$f({
formid:form,//id формы
url:'/functions/change_photo1',
//адрес на серверный скрипт который будет принимать файл
onstart:function () {//действие при начале загрузки файла
$$('result','начинаю отправку файла');//в элемент с id="result" выводим результат
},
onsend:function () {//действие по окончании загрузки файла
$$('result',$$('result').innerHTML+'<br />файл успешно загружен');//в элемент с id="result" выводим результат
}
});
}
});
echo'
<script type="text/javascript">
var elm=parent.window.document.getElementById("result");
elm.innerHTML=elm.innerHTML+"<br />id_article '.str_replace("\r","",str_replace("\n","<br />",htmlspecialchars(stripslashes($_POST['id_article'])))).' id_photo '.str_replace("\r","",str_replace("\n","<br />",htmlspecialchars(stripslashes($_POST['id_photo'])))).' ";
</script>
';
Сервер замечательно получает форму и вот на сервере я формирую html ответ, обратите внимание что ответ выводится в блок с id result, вопрос в том как сформировать и вывести ответ в блок с классом result вложенным в блок с классом .form_test при изменении которого и происходит отправка формы то есть в $(this).find('.result'). Помогите пожалуйста функция работает отлично только вот ответ надо подругому чтобы выводился потому что таких форм предполагается множество на странице и чтобы не плодить функции необходимо ее переписать, помогите пожалуйста кто спец в javascript, спасибо |
Сохрани ссылку на this обработчика события:
var form = this; А затем уже используй ее в callback-функции: $(form).find('.result').html('bla-bla'); |
но у меня же и в пхп формируется так
var elm=parent.window.document.getElementById("result" ); не могли бы вы сформировать этот пример - плохо в javascript разбираюсь, извините, помогите пожалуйста |
Внутри обработчика события, this ссылается на элемент, на котором возникло событие. Сохрани ссылку на этот элемент в переменную (только не form, как я написал, а то у тебя уже есть переменная form).
А в функции onsend уже используй эту ссылку (переменную). |
Так?
var this_form = this;
onsend:function () {//действие по окончании загрузки файла
$(this_form).find('.result').innerHTML;
так ответа нет |
danik.js,
помоги пожалуйста до конца разобраться |
правильно ли будет заменить эту запись
var elm=parent.window.document.getElementById("result");
на
var elm=$(this_form).find('.result');
Если нет то как правильно, ведь скрипт в пхп передает именно блоку с id result innerHTML |
Цитата:
|
ну ответ же должен приходить в js ? , да сформулируй уже полностью код (надо же как то отправить его из пхп еще), что я гадаю так или нет- ты же знаешь код, напиши его просто,пожалуйста я сразу все пойму
так пишу
$(form).find('.result').html('Файл переписан');
отображается при завершении события, но мне же надо еще ответ из пхп получить, раньше он с помощью innerHTML приходил, а теперь как его получить |
Поменяй вот тут ошибка
<div class="result" id="result" style="position:relative;"></div> ну и если не работает можно отдельно написать
$('.form_test').change(function(){
var form = $(this).find('.test_form').attr('id');
SendFile();
});
function SendFile() {
//отправка файла на сервер
$$f({
formid:form,//id формы
url:'/functions/change_photo1',
//адрес на серверный скрипт который будет принимать файл
onstart:function () {//действие при начале загрузки файла
$$('result','начинаю отправку файла');//в элемент с id="result" выводим результат
},
onsend:function () {//действие по окончании загрузки файла
$$('result',$$('result').innerHTML+'<br />файл успешно загружен');//в элемент с id="result" выводим результат
}
});
}
не путай класс с id - это 2 разные вещи функция $$() не умеет работать с классом http://scriptjava.net/documentation |
| Часовой пояс GMT +3, время: 09:24. |