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

Форум PHP

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

 

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

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

тема: ошибка передачи параметров get
 
 автор: ok computer   (21.01.2008 в 08:06)   письмо автору
 
 

ошибка в цикле.
по всем формируемым ссылкам передается одно и тоже значение (например, макс. id = 8064).

заранее спасибо




for ($i=1; $i <=$num_rows; $i++)
 

    {

    $res=mysql_fetch_assoc($query);  

<script>
function funk2() 


    {



document.forms.to_base.submit();         
popupWin= window.open('combo.php?id=<?php echo $res['id']; ?>&table=otdel&id_otdel=<?php echo $res['id_otdel']; ?>','last', 'location,width=400,height=300,top=0,scrollbars = 1');
popupWin.focus();  //  неверные значения


    }

</script>

<?php 
echo '<td>'.$res['otdel']; // верно
?> 
<a href="javascript:funk2()"><img style="border: 0px solid ;" alt="" src="right.gif"></a></td> 

}

   
 
 автор: Trianon   (21.01.2008 в 08:17)   письмо автору
 
   для: ok computer   (21.01.2008 в 08:06)
 

Если Вы 20 раз определите функцию с одним и тем же именем, первое же повторное определение приведет к ошибке (которую вы игнорируете), а действовать останется последний вариант. Что Вы и наблюдаете.

   
 
 автор: ok computer   (21.01.2008 в 08:29)   письмо автору
 
   для: Trianon   (21.01.2008 в 08:17)
 

покажите, пожалуйста, на примере, как корректно исправить.

и как оптимизировать код, если есть еще несколько функции:

funk1() и funk3()
по ссылкам передаются:

popupWin= window.open('combo.php?id=<?php echo $res['id']; ?>&table=room&id_room=<?php echo $res['id_room']; ?>','last', 'location,width=400,height=300,top=0,scrollbars = 1');
popupWin.focus(); 

popupWin= window.open('combo.php?id=<?php echo $res['id']; ?>&table=name&id_name=<?php echo $res['id_name']; ?>','last', 'location,width=400,height=300,top=0,scrollbars = 1');
popupWin.focus(); 

   
 
 автор: ok computer   (21.01.2008 в 08:19)   письмо автору
 
   для: ok computer   (21.01.2008 в 08:06)
 

если указать ссылку вне <script> передаются необх. данные.
в чем может быть проблема?

//<script> 
//function funk2()  


//    { 



//document.forms.to_base.submit();          
//popupWin= window.open('combo.php?id=<?php echo $res['id']; ?>&table=otdel&id_otdel=<?php echo $res['id_otdel']; ?>','last', 'location,width=400,height=300,top=0,scrollbars = 1'); 
popupWin.focus();  //  неверные значения 


  //  } 

//</script> 

<?php  
echo '<td>'.$res['otdel']; // верно 
?>  
<a href="combo.php?id=<?php echo $res['id']; ?>&table=otdel&id_otdel=<?php echo $res['id_otdel']; ?>'"><img style="border: 0px solid ;" alt="" src="right.gif"></a></td>  

   
 
 автор: ok computer   (21.01.2008 в 09:56)   письмо автору
 
   для: ok computer   (21.01.2008 в 08:19)
 

так вообще ссылка не формируется(



for ($i=1; $i <=$num_rows; $i++) 
  

    { 

    $res=mysql_fetch_assoc($query);   

<script> 
function funk<?php echo $i?>()  


    { 



document.forms.to_base.submit();          
popupWin= window.open('combo.php?id=<?php echo $res['id']; ?>&table=otdel&id_otdel=<?php echo $res['id_otdel']; ?>','last', 'location,width=400,height=300,top=0,scrollbars = 1'); 
popupWin.focus();  //  неверные значения 


    } 

</script> 

<?php  
echo '<td>'.$res['otdel']; // верно 
?>  
<a href="javascript:funk<?php echo $i?>()"><img style="border: 0px solid ;" alt="" src="right.gif"></a></td>  

}

   
 
 автор: sim5   (21.01.2008 в 10:36)   письмо автору
 
   для: ok computer   (21.01.2008 в 09:56)
 

Если вы хотите открывать несколько окон с различными ссылками, то функцию нужно сделать одну, в которую будут передваться необходимые параметры ссылки. А вот картинкам присвоить вызов этой функции, в которой вы и должны сформировать (как я понимаю в цикле вашем) необходимые ссылки. Иначе у вас получается бардак какой-то.

   
 
 автор: ok computer   (21.01.2008 в 10:44)   письмо автору
 
   для: sim5   (21.01.2008 в 10:36)
 

по ссылке происходит отправка данных главной формы и открывается дополнительное окно для редактирования.


да, функция должна быть одна.
не могли бы вы привести пример. совсем запутались(

   
 
 автор: sim5   (21.01.2008 в 10:47)   письмо автору
 
   для: ok computer   (21.01.2008 в 10:44)
 

Пример чего? Просто я вижу, что у вас функция прописывается в цикле, а значит их куча будет, а зачем?

   
 
 автор: ok computer   (21.01.2008 в 11:15)   письмо автору
 
   для: sim5   (21.01.2008 в 10:47)
 

допустим, выношу за цикл:
<script>  
function funk()   


    {  

document.forms.to_base.submit();           
popupWin= window.open('combo.php?id=<?php echo $param1?>&table=<?php echo $param2 ;?>&id_<?php echo $param3?>=<?php echo $param4?>','last', 'location,width=400,height=300,top=0,scrollbars = 1');  
popupWin.focus();  
    }  

</script>  
как затем инициировать параметры в ссылке?
допустим $param1=res['id']
$param2=otdel
$param3=otdel
$param4=res['id_otdel']

   
 
 автор: sim5   (21.01.2008 в 11:34)   письмо автору
 
   для: ok computer   (21.01.2008 в 11:15)
 

Вот примерно:

//прописываем JS функцию вне цикла
function openWnd(lnk) {
document.forms.to_base.submit();
popupWin= window.open("combo.php?"+lnk, "last", "width=400,height=300,top=0,scrollbars=1");  
popupWin.focus();
}

Из параметров окна убрано location - это вы не правильно пишите. Если вы хотите задействовать этот параметр или нет, то укажате ему соотвественно location=1/0, иначе то что вы написали, это ахинея.
Уберите якоря с изображений, и вызывайте функцию по событию onclick изображения. В стиле для изображения укажите курсор. Вот изображения и выводите в цикле, присваивая парметры сслыки каждому изображению согласно требуемым.

<?
//в теле цикла
print "<img onclick=\"openWnd('id=".$param1."&table=".$param2."&id_".$param3."=".$param4."')\" 
src=\"\" width=\"\" height=\"\" border=\"0\" style=\"cursor: pointer\">"
;
?>

Соответсвенно указывайте имена изображений и их размеры, тут они не прописаны. Но коли вы их помещаете в цикл, надо пологать изображений будет не одно?

   
 
 автор: ok computer   (21.01.2008 в 12:06)   письмо автору
 
   для: sim5   (21.01.2008 в 11:34)
 

ошибка в синтаксисе:"предполагается наличие ;"
что исправить?



echo '<td>'.$res['place'];

print "<img onclick=\"openWnd('id=".$res['id']."&table=place&id_place=".$res['id_place']."')\"  
src=\"http://***/icons/right.gif\" width=\"\" height=\"\" border=\"0\" style=\"cursor: pointer\">"; 














да.

   
 
 автор: sim5   (21.01.2008 в 12:37)   письмо автору
 
   для: ok computer   (21.01.2008 в 12:06)
 

Заремируйте строку document.forms.to_base.submit(); на время проверки, или пропишите форму, ошибка исчезнет.

   
 
 автор: ok computer   (21.01.2008 в 12:43)   письмо автору
 
   для: sim5   (21.01.2008 в 12:37)
 

у меня даже картинка не появляется(

   
 
 автор: sim5   (21.01.2008 в 12:46)   письмо автору
 
   для: ok computer   (21.01.2008 в 12:43)
 

Размер ее укажите, разве вы не видите, что я их пустыми в примере оставил?

   
 
 автор: ok computer   (21.01.2008 в 12:51)   письмо автору
 
   для: sim5   (21.01.2008 в 12:46)
 

спасибо.

все работает. форма перезагружается. но почему опять ошибка js?

   
Rambler's Top100
вверх

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