Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Submit По ссылке (https://javascript.ru/forum/events/26883-submit-po-ssylke.html)

Tatyanko_O 26.03.2012 12:05

Submit По ссылке
 
Добрый день!
Столкнулась со следующей проблемой. Есть форма:
echo '<form name="form_podrobno" id="form_podrobno" method="post" action="http://mysite.ru/podrobno">
<table>';
$spisok=mysql_query("SELECT * FROM `mytable`");
while($row = mysql_fetch_array($spisok)) 
  {
	printf ('
	   <tr>
         <td>%s</td>
         <td><input type="hidden" name="id" value='.$row['id'].'>%s</td>
	 <td>%s<br/><a href="#" onclick="document.form_podrobno.submit(); return false;"> Подробно </a></td>
		 <td >%s</td>
		  </tr>',$row['stb1'],$row['stb2'],$row['stb3'],$row['stb3']);
   }
echo '</table></form>';

Всю таблицу верно выводит. Но когда по этой самой ссылке щелкаю, он должен брать id строки (он тоже есть в таблице) и по этому id на другой странице выводится вся дополнительная информация. Так вот, у меня по щелчку на ссылку любой строки берется первый id таблицы, т.е. выводится информация строки с меньшим id...
Бьюсь, бьюсь... Подскажите, пожалуйста, в чем моя ошибка? Заранее большое спасибо.

Tatyanko_O 26.03.2012 22:18

Блин, теперь поняла, конечно, где ошибка, но дальше заело.
echo '<form name="form_podrobno" id="form_podrobno" method="post" action="http://mysite.ru/podrobno">
<table>';
$spisok=mysql_query("SELECT * FROM `mytable`");
while($row = mysql_fetch_array($spisok)) 
  {
	printf ('
	   <tr>
         <td>%s</td>
         <td><input type="hidden" name="id[]" id="id" value='.$row['id'].'>%s</td>
	 <td>%s<br/><a href="#" onclick="document.form_podrobno.submit(); return false;"> Подробно </a></td>
		 <td >%s</td>
		  </tr>',$row['stb1'],$row['stb2'],$row['stb3'],$row['stb3']);
   }
echo '</table></form>';

Получаю массив id для все строк таблицы. Но теперь как определить по какой строке мы щелкнули? Вернее, как это передать!?

NoResponse 26.03.2012 23:06

вот так "можно"
echo '
<script type="text/javascript">
function mySubmit(n){
  var f=document.forms["form_podrobno"];
  f["id"].value=n;
  f.submit();
}
</script>
<form name="form_podrobno" id="form_podrobno" method="post" action="http://mysite.ru/podrobno">
<input type="hidden" name="id" value='.$row['id'].'>%s</td>

...

printf ('
       <tr>
       <td>%s</td>
       <td>%s</td>
       <td>%s<br/><a href="#" onclick="mySubmit(\"'.$row['id'].'\"); return false;"> Подробно </a></td>

...

Tatyanko_O 29.03.2012 00:42

:-? Мммм, тогда по клику ничего не происходит...

Tatyanko_O 05.04.2012 09:31

В общем, описанное адаптировать у меня не хватило толку. Ну не переходит у меня на нужную страницу. Решение нашла. Пусть временное, но рабочее. Буду совершенствоваться и буду совершенствовать.
Если кому-нибудь пригодится, вот рабочий вариант:
echo '
<table>';
$spisok=mysql_query("SELECT * FROM `mytable`");
while($row = mysql_fetch_array($spisok)) 
  {
	printf ('
	   <tr>
         <td>%s</td>
         <td>%s</td>
	 <td>%s<br/><a href="http://mysite.ru/podrobno?num='.$row['id'].'" onclick="document.submit(); return false;"> Подробно </a></td>
		 <td >%s</td>
		  </tr>',$row['stb1'],$row['stb2'],$row['stb3'],$row['stb3']);
   }
echo '</table>';

На странице "Подробнее" $url=$_SERVER['REQUEST_URI']; и дальше стандартными функциями php беру последний параметр из этой строки.


Часовой пояс GMT +3, время: 03:23.