Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Javascript submit из функции

18K
06 июня 2006 года
Holo
3 / / 06.06.2006
Код:
<script language="javascript">
function switch_status($id, $old, $form) {

confirm_sw= confirm ("Меняем статус записи с ID ="+$id + " формы " +$form);

if(confirm_sw== true) {  

document.$form.submit();

}
else{
document.$form.select.value = $old;
}

}
</script>

// тут идет  циклом несколько форм, формирующихся их Mysql базы

<? $form = $row_view_orders['id']; ?>

<form action="action.php"  name="form<?php echo $form; ?>" target="_blank"  method="post">

<select name="status"   &#111;&#110;change="switch_status(<?php echo  $row_view_orders['id']; ?>,<?php echo $id_status ?>, 'form<? echo $form?>')" >


<?php  do {   ?>

<option value="<?php echo $row_status['id']?>" <? if($row_status['id']==$id_status) { echo " selected";}?> >  
<?php echo $row_status['id']?> / <? echo $id_status?> - <?php echo $row_status['status_name']?></option>
<?php  } while ($row_status = mysql_fetch_assoc($status));
  $rows = mysql_num_rows($status);
  if($rows > 0) {    mysql_data_seek($status, 0);    $row_status = mysql_fetch_assoc($status);     }  ?>

</select>

</form>



Если прицепить кнопку сабмит, то все сабмитит отлично, а если самбит проводить по onchange в теле функции switch_status то ничего не происходит , спотыкается именно на
document.$form.submit();

Заранее спасибо.
8
06 июня 2006 года
mfender
3.5K / / 15.06.2005
Попробуй Submit() - именно с большой буквы.
18K
06 июня 2006 года
Holo
3 / / 06.06.2006
Не помогает
 
Код:
<a href="java script:void(0)" class="style3" &#111;&#110;click="document.form<? echo $row_view_orders['id']?>.submit() ; reload_page(); return false;"><img src="../../images/ok.gif" width="15" height="15" hspace="2" border="0" /></a>


постит нормально а из функции не хочет
эксплорер ругается, говорит
document.$form = NULL или не является объектом
8
06 июня 2006 года
mfender
3.5K / / 15.06.2005
[QUOTE=Holo]Не помогает
постит нормально а из функции не хочет
эксплорер ругается, говорит
document.$form = NULL или не является объектом[/QUOTE]
Я пригляделся... Ты JavaScript с PHP нигде не попутал? По моей логике, функция должна выглядеть так:
 
Код:
function switch_status(id, old, form) {
confirm_sw= confirm ("Меняем статус записи с ID ="+id + " формы " +form);
if(confirm_sw== true) {  
document.form.submit();
}
else{
document.form.select.value = old;
}
}
18K
06 июня 2006 года
Holo
3 / / 06.06.2006
яваскрипту пофигу используешь ты $ или нет, лишь бы везде было одинаково
я чисто на автомате после php ставил $

не работает ни так, ни так

в итоге пришлось сделать так:
 
Код:
document.forms[counter].submit();


ну и соответственно немного поменять html/php
8
06 июня 2006 года
mfender
3.5K / / 15.06.2005
Во как! А создатели JavaScript о таких чудесах и не знали... А может старательно скрывали?

Имена переменным назначаются разработчиком и могут состоять только из латинских букв a-z и A-Z, цифр 0-9 и символа подчерки-вания “_”. При этом имя переменной не может начинаться с цифры. Имена переменных не должны совпадать с зарезервированными словами JavaScript.
8
06 июня 2006 года
mfender
3.5K / / 15.06.2005
[QUOTE=Holo]яваскрипту пофигу используешь ты $ или нет, лишь бы везде было одинаково
я чисто на автомате после php ставил $

не работает ни так, ни так

в итоге пришлось сделать так:
 
Код:
document.forms[counter].submit();


ну и соответственно немного поменять html/php[/QUOTE]
Вообще, есть довольно чёткая DOM-модель документа. С формами и элементами в них общаться проще всего.
У объекта document есть коллекция forms. К каждой форме (item'у этой коллекции можно обратиться по его имени).
Т.е.: document.forms.form_name.Submit(). Но можно и как document.getElementById('form_name').Submit(). Но второе работает только на mshtml, если у формы не определён id.
8.8K
06 июня 2006 года
viktor_root
58 / / 10.08.2005
[QUOTE=mfender]Вообще, есть довольно чёткая DOM-модель документа. С формами и элементами в них общаться проще всего.
У объекта document есть коллекция forms. К каждой форме (item'у этой коллекции можно обратиться по его имени).
Т.е.: document.forms.form_name.Submit(). Но можно и как document.getElementById('form_name').Submit(). Но второе работает только на mshtml, если у формы не определён id.[/QUOTE]
--------------------------------------------------
Так... замечание "document.forms.form_name.Submit()" - это НЕ DOM.
8
06 июня 2006 года
mfender
3.5K / / 15.06.2005
[QUOTE=viktor_root]--------------------------------------------------
Так... замечание "document.forms.form_name.Submit()" - это НЕ DOM.[/QUOTE]
Я, конечно, дико извиняюсь, но что есть IHTMLDocument2->IHTMLFormsCollection->IHTMLFormElement? Может это и не DOM, но модель с методами и свойствами - понятная. ;)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог