Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как в строке document.forma.field1.value менять динамически параметр field1
 
 автор: lobarev   (06.02.2006 в 12:04)   письмо автору
 
 

Есть скрипт:

<script language="javascript"> 
function copyfun(forma, field1, field2) 

document.forma.field1.value = document.forma.field2.value * <? echo $props["QUANTITY_SALE"]["VALUE"]?> 

</script>

где forma, field1, field2 - строковые переменные задаваемые РНР, как сделать чтобы это заработало.

   
 
 автор: 12345   (06.02.2006 в 13:01)   письмо автору
 
   для: lobarev   (06.02.2006 в 12:04)
 

Это не называется так. Динамически - это когда клиентским скриптом на странице: fieldVar='field1';document.forma.elements[fieldVar].value...;
В вашем случае -

<? echo "document.forma.$field1.value = document.forma.$field2.value * "$props["QUANTITY_SALE"]["VALUE"];?> 

   
 
 автор: lobarev   (06.02.2006 в 13:30)   письмо автору
 
   для: 12345   (06.02.2006 в 13:01)
 

а что это за строчка: fieldVar='field1';document.forma.elements[fieldVar].value...;
, можно о ней поподробнее, могу я ее как то использовать в своем случае???

   
 
 автор: 12345   (06.02.2006 в 14:45)   письмо автору
 
   для: lobarev   (06.02.2006 в 13:30)
 

В учебнике - доступ к формам и полям формы. В вашем случае не нужно.

   
 
 автор: lobarev   (06.02.2006 в 14:51)   письмо автору
 
   для: 12345   (06.02.2006 в 14:45)
 

Я все же рискнул ею воспользоваться и частично получилось, но есть одно но:

<table border="1" align="center" cellpadding="5" cellspacing="0" bordercolor="#000099">
<form name=forma>
<?
$arItems 
= array(10,12,100);
$name1 = array('text11','text12','text13');
$name2 = array('text21','text22','text23');

for (
$i 0$i count($arItems); $i++)
  {
?>
<tr>
<td class="smallBlack"><? echo $arItems[$i];?></td>
<td class="smallBlue"><? echo $name1[$i];?></td>
<td class="smallGray"><? echo $name2[$i];?></td>
<td width="600" class="popupmenuclosed">
<input type="text" name="<? echo $name1[$i]?>" onKeyup=copyfun(<? echo $i?>) size="4"> x <? echo intval($arItems[$i])?> = <input type="text" name="<? echo $name2[$i]?>" size="4"><br>
</td>
</tr>
<script language="javascript">
  function copyfun()
    {
      document.forma.<? echo $name2[$i]?>.value=document.forma.<? echo $name1[$i]?>.value * <? echo $arItems[$i]?>;
    }
</script>
<?
  
}?>
</form>
</table>

в таком виде (представление переменных мне нужно именно такое, они должны браться из массивов) при запуске в браузере работает только последняя строчка, две предыдущие ни как не реагируют, если не считать того, что при вводе любой цифры в этих 2 строчках появляется "0" в последней строчке.
Что может быть не так. При просмотре готового кода (из браузера), вроде все в порядке, хотя я может что то и не досмотрел.

   
 
 автор: lobarev   (06.02.2006 в 14:57)   письмо автору
 
   для: lobarev   (06.02.2006 в 14:51)
 

все заработало при добавлении к имени функции индекса, причем ИМЕННО к имени, а не в аргументы, т.е. copyfun_<? echo $i?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования