|
|
|
| доброго времени суток форумчане.
на форме имеются несколько input'ов получаемых из бызы циклом while. на против каждого инпута есть кнопочка. подскажите как по нажатию кнопки получить id инпута на против которого находиться эта кнопка. | |
|
|
|
|
|
|
|
для: NoCash
(31.05.2010 в 11:01)
| | А Вам нужно это сделать с помощью PHP или JavaScript? | |
|
|
|
|
|
|
|
для: FINT
(31.05.2010 в 11:06)
| | думаю php меня полностью устроит | |
|
|
|
|
|
|
|
для: NoCash
(31.05.2010 в 11:07)
| | Устроило бы, если бы этим он занимался. | |
|
|
|
|
|
|
|
для: sim5
(31.05.2010 в 11:12)
| | что вы хотите этим сказать? | |
|
|
|
|
|
|
|
для: NoCash
(31.05.2010 в 11:13)
| | РНР за нажатие кнопочек на клиенте, пользователем, ответственности не несет - нет на клиенте РНР.
Если вам нужен результат на сервере, как отклик клиента (выбор), то связывайте по id элементы. | |
|
|
|
|
|
|
|
для: sim5
(31.05.2010 в 11:21)
| | я прекрасно знаю что такое PHP и с чем его едят))) но вот понять как получить id при нажатии на submit пока что не представляю поэтому и спросил в форуме. зная что сдесь люди намного опытнее меня в програмировании. может я изначально неправильно обьяснил что вы меня неправильно поняли. попробую описать проблемму по подробнее
на форме циклом while образуются инпуты и забиваются значениями из базы. напротив каждого инпута Submit при нажатии которого открывется форма где должно отображаться все инпуты пренадлежащие тому же id(на пред.форме)
например
фирма 1 жму на редактировать рядом с фирмой 1 и появляется вся информация про эту фирму.
думаю сейчас более понятно что требуется)) если можно можете подсказать что и как | |
|
|
|
|
|
|
|
для: NoCash
(31.05.2010 в 11:36)
| | >напротив каждого инпута Submit при нажатии которого открывется форма где должно отображаться все инпуты пренадлежащие тому же id.... и т.д....
Это уж точно не заботы РНР, это только JavaScript. Так, что не все вы знаете о РНР.
РНР никоим образом не может узнать, что чему принадлежит, на чем пользователь щелкает, если вы ему не сообщите об этом. | |
|
|
|
|
|
|
|
для: sim5
(31.05.2010 в 11:42)
| | ну дак речь и идет о том как сообщить. только словами доступными простым людям а не супер мега програмерам)))) я вот делаю вот так
<?php
$sql -> db_Select("ab_cat", "*", "");
while($row = $sql -> db_Fetch())
{
$cat_id = $row['cat_id'];
$cat_name = $row['cat_name'];
$cat_city=$row['cat_city'];
$cat_street=$row['cat_street'];
$cat_home=$row['cat_home'];
$cat_web=$row['cat_web'];
$cat_desc=$row['cat_desc'];
$cat_con=$row['cat_con'];
$cat_tel=$row['cat_tel'];
$cat_check=$row['cat_check'];
if ($cat_check=="no")
$text .="<tr>
<tr><input type='hidden' name='cat_id[]' value='$cat_id'>
<td class='forumheader3'>$cat_name</td><td class='forumheader3'>$cat_city</td>
<td class='forumheader3'>$cat_street</td><td class='forumheader3'>$cat_home</td>
<td class='forumheader3'>$cat_web</td><td class='forumheader3'>$cat_desc</td>
<td class='forumheader3'>$cat_con</td><td class='forumheader3'>$cat_tel</td>
<input name='this' type=hidden value=2>
<tr><td class='forumheader3' colspan=8>
<input type='submit' class='submit' name='add_subcat' value='редактировать' style='border:0;float:right'></td></tr>";
}
?>
|
и следущая форма
<?php
$text .="<form name='manager2' enctype='multipart/form-data' method='post' action='' class='border' style='border:0;float:top; $v2'>
<input name='this' type='hidden' value='1'>
<table class='border:1' style='width:100%'> ";
for($i=0;$i<=sizeof($_POST['cat_id']);$i++){
$sql -> db_Select("ab_cat", "*", "cat_id='".$_POST['cat_id'][$i]."'");
while($row = $sql -> db_Fetch())
{
$cat_id = $row['cat_id'];
$cat_name = $row['cat_name'];
$cat_city=$row['cat_city'];
$cat_street=$row['cat_street'];
$cat_home=$row['cat_home'];
$cat_web=$row['cat_web'];
$cat_desc=$row['cat_desc'];
$cat_con=$row['cat_con'];
$cat_tel=$row['cat_tel'];
$text .="<tr><input type='hidden' name='cat_id' value='$cat_id'>";
$text .="<td class='forumheader3'>".AB_NAME_1."</td><td class='forumheader3'><input type=text name='cat_name' value='$cat_name'></td></tr>";
echo $cat_id;
$text .="<tr><td class='forumheader3'>вид деятельности</td><td class='forumheader3'><input type=text name='cat_desc' value='$cat_desc'></td></tr>
<tr><td class='forumheader3'>".AB_NAME_2."</td><td class='forumheader3'><input type=text name='cat_city' value='$cat_city'></td></tr>
<tr><td class='forumheader3' class='forumheader3'>".AB_NAME_3."</td><td class='forumheader3'><input type=text name='cat_street' value='$cat_street'></td></tr>
<tr> <td class='forumheader3'>".AB_NAME_4."</td><td class='forumheader3'><input type=text name='cat_home' value='$cat_home'></td></tr>
<tr><td class='forumheader3'>сайт</td><td class='forumheader3'><input type=text name='cat_web' value='$cat_web'></td></tr>
<tr><td class='forumheader3'>контактный лицо</td><td class='forumheader3'><input type=text name='cat_con' value='$cat_con'></td></tr>
<tr><td class='forumheader3'>контактный телефон</td><td class='forumheader3'><input type=text name='cat_tel' value='$cat_tel'></td></tr>
</td></tr></table>";
}
}
$text .="<table id='tab' class='border' style='width:100%'><tr>
<td class='forumheader3' width='40%' >".AB_NAME_6."</td>
<td class='forumheader3' width='20%'>".AB_NAME_5."</td>
<td class='forumheader3'>".AB_NAME_8."</td></tr>";
$sql -> db_Select("ab_gnl", "*", "gnl_cat='$cat_id'");
while($row = $sql -> db_Fetch())
{
$gnl_id = $row['gnl_id'];
$gnl_cat = $row['gnl_cat'];
$gnl_division=$row['gnl_division'];
$gnl_phone=$row['gnl_phone'];
$gnl_mail=$row['gnl_mail'];
$text .="<input type='hidden' name='gnl_id1[]' value='$gnl_id'>";
$text .="
<tr><td class='forumheader3' ><input type='text' name='gnl_division[]' value='$gnl_division' size='40%'></td>
<td class='forumheader3' ><input type='text' name='gnl_phone[]' value='$gnl_phone'></td>
<td class='forumheader3' ><input type='text' name='gnl_mail[]' value='$gnl_mail'></td></tr>";
}
$text .="</table>";
$text .="<input type='submit' class='submit' name='ok' value='принять' style='border:0;float:right'>
<input type='submit' value='отмена' style='border:0;float:right'>";
$text .="</td></tr></table></form>";
?>
|
проблемма в том что вытаскивается только последнее значение. последнего id. | |
|
|
|
|
|
|
|
для: NoCash
(31.05.2010 в 14:06)
| | Я не вижу здесь кнопочек, это первое. А связать элементы, например:
<input type="text" name="as[15]"> <input type="checkbox" name="chk[]" value="15">
|
| |
|
|
|
|
|
|
|
для: sim5
(31.05.2010 в 14:16)
| |
<tr><td class='forumheader3' colspan=8>
<input type='submit' class='submit' name='add_subcat' value='редактировать' style='border:0;float:right'></td></tr>";
|
а это что?? просто она тоже в цикле поэтому и выводиться столько раз сколько и инпутов | |
|
|
|
|
|
|
|
для: NoCash
(31.05.2010 в 14:19)
| | Это кнопка SUBMIT. Ее назначение - отправка формы! А вы о чем:
>на против каждого инпута есть кнопочка
.... из чего и вытекает вопрос ваш.
Так вам чего надо? | |
|
|
|
|
|
|
|
для: sim5
(31.05.2010 в 14:22)
| |
<input type="text" name="as[15]"> <input type="checkbox" name="chk[]" value="15">
|
я так понимаю вы предлогаете отмечать галочкой те инпуты которые нужно редактировать?? и сюда
<input type="checkbox" name="chk[]" value="15">
| записывать id??? или я не так обмозговал | |
|
|
|
|
|
|
|
для: NoCash
(31.05.2010 в 14:30)
| | Вы лучше на пальцах объясните - что за задача стоит, а не о кнопочке после inpunt, это не объясняет сути. | |
|
|
|
|
|
|
|
для: NoCash
(31.05.2010 в 14:06)
| | Скажите, пожалуйста, как так получилось, что Вы, считая себя простым человеком, а не супер и далее по тексту, применяете объектную форму доступа к SQL?
Простые люди такого не используют. | |
|
|
|
|
|
|
|
для: Trianon
(31.05.2010 в 14:26)
| | начал пытать програмировать когда вручили движок e107. там изнально сделано так вот и прижилось | |
|
|
|
|
|
|
|
для: NoCash
(31.05.2010 в 14:27)
| | И вы этот ужас еще и рекламировали, совсем не понимая, чего вам самому надо.
Если есть куча полей ввода, и напротив каждой кнопка отправки формы, по отправке которой нужно знать у какого поля щелкнули (а надо полагать тогда, что остальное не интересует), то связывайте эти элементы. Как, выше сказано.
Но не лучше ли в таком случае воспользоваться списком? | |
|
|
|
|
|
|
|
для: sim5
(31.05.2010 в 14:33)
| | ну дык я и не говорю что хуже или что лучше я попросил помочь решить проблемму. вы предложили. сейчас обмозгую и попробую сделать.
>И вы этот ужас еще и рекламировали
это вы про что это?? про e107.compolys.ru? | |
|
|
|
|
|
|
|
для: NoCash
(31.05.2010 в 14:38)
| | Если вы не знаете как получить запрашиваемое, то, думаю, размещение рекламы на данный проект (в HTML-разделе), это сверх наглость, да и настораживает, не так-ли? ;-) | |
|
|
|
|
|
|
|
для: sim5
(31.05.2010 в 14:41)
| | понимаете я еще в стадии изучения php но так сказать основы самые самые небольшие я освоил. за рекламму сори если что не так))
то что получить запрашиваемое я знаю. согласитесь если бы знал не попросил бы помоши. логично?? | |
|
|
|
|
|
|
|
для: NoCash
(31.05.2010 в 14:48)
| | Ну вам никто и не отказывает в помощи. Но уж лучше тогда, в вашем случае, суть задачи описывать.
JavaScript позволяет определить любой элемент предстоящий элементу по которому щелкает пользователь, получив все определенные его параметры. А вот РНР никак не может узнать на чем так кликают, ему нужно сообщать явно это. Это значит, что если вы хотите по щелчку по некоемому элементу формы узнать, что за элемент стоит перед ним, или иначе "принадлежит" ему, то этот элемент должен быть как-то идентифицироваться элементом, по которому щелкнули. Но... Допустим у вас сейчас такое:
<form action="" method="post">
<input type="text" name="as[12]" value="111"> <input type="submit" name="send[12]" value="Send"><br>
<input type="text" name="as[23]" value="222"> <input type="submit" name="send[23]" value="Send"><br>
<input type="text" name="as[32]" value="333"> <input type="submit" name="send[32]" value="Send">
</form>
|
Здесь массив кнопок и полей ввода, при этом каждое поле ввода привязано к кнопке submit по индексу. Поэтому, при отправке формы на сервере будет получен массив as (элементы input) с ключами 12, 23, 32, и массив send, но только с одним элементом - с индексом равным нажатой кнопке submit. Не сложно по ключам этих массивов узнать на сервере, против какого поля была нажата кнопка submit.
Но встает вопрос - а зачем это нужно? Другие поля ввода не интересуют? Да и странно использовать поля ввода, предназначенные в первую очередь именно для ввода, в качестве информативных полей (в данном случае). Если нет, то весь этот грузный html-код в форме проще заменить элементом select:
<select name="as" onchange="this.form.submit()">
....
</select>
|
и даже кнопки submit не потребуется, а на сервере вы получите значение опшена, которое выбрал пользователь. | |
|
|
|
|
|
|
|
для: sim5
(31.05.2010 в 15:18)
| | Что вы грузите парня? гг..:)) при чем тут яваскрипт? разве нельзя передать идентификатор записи через ГЕТ, выбрать данную запись, и редактировать?!
Насколько я понял, ему нужно именно это, к примеру есть список
id | text
1---111--изменить
2---222--изменить
............
и т. д.
|
при нажатии изменить в GET передаем id данной строки/записи, и открываем его для внесения изминений, вот только ему надо взять не готовый ,,какой то,,непонятный ему код, а именно методом тыка научится как это сделать:) | |
|
|
|
|
|
|
|
для: bab-nike
(31.05.2010 в 16:15)
| | Кто говорит, что нельзя? Вопрос только в том, для чего? Вы почитайте выше, о формах, которые надо показывать... для чего показывать? Надо не просто задавать вопрос, но и хоть малость разъяснять, толкований будет меньше.
Лучше не тыкать, это не метод познания, а представлять суть решаемого, это подскажет удобный выбор необходимого для решения.
PS. Да и при передаче формы, говорить еще о дополнительном GET..., а формы для этого мало? | |
|
|
|