Как вытащит значения строки массива и внести новою форму?
Доброе время суток.
У меня php скрипт по получению списка записей с SOAP-сервере. Записи получаю виде формирования таблицы в массиве цикле. Вот кусок php //Успешно получили список записей с SOAP-сервера. echo "<form id='myForm' method='post' style='display:inline;'><table class='info'><tr><td><h1>Существующие записи в доменном имени $namedomain</h1></td></tr><tr><td><table class='info_2'><tr><td>N</td><td class='number_id'>ID *</td><td>Действие</td><td>Хост</td><td>Тип записи</td><td>Приоритет</td><td>Вес</td> <td>Порт</td><td style='width:200px'>Значение</td><td>Алгоритм</td><td>Приведение типа</td><td>Комментарий</td></tr>"; foreach($getrrrecord->data as $key =>$record) { echo"<tr class='$record->id' name='domain_id'><td>".($key+1)."</td> <td><span class='number_id'>".$record->id."</span></td> <td><button id='butt_cler' name='submitData'>Удалить</button></td> <td>".$record->owner."</td> <td>".$record->type_record."</td> <td>".$record->pri."</td> <td>".$record->weight."</td> <td>".$record->port."</td> <td class='td_value'>".$record->data."</td> <td>".$record->sshfp_algorithm."</td> <td>".$record->sshfp_type."</td> <td>".$record->info."</td></tr>"; } echo '</table></td></tr></table></form>'; Мне нужно при клике по кнопке вывести проверочную форму на удаления записи домена со значениями строки где была нажата кнопка. В проверочной форме должны быть <form class='forma_3' action='soap_action_deleterrrecord.php' method='post'> <table class='info_2'> <tr<td></td> <td><input type='text' name='id' value='".$record->id."'></td> <td>".$record->owner."</td> <td>".$record->type_record."</td> <td>".$record->pri."</td> <td>".$record->weight."</td> <td>".$record->port."</td> <td class='td_value'>".$record->data."</td> <td>".$record->sshfp_algorithm."</td> <td>".$record->sshfp_type."</td> <td>".$record->info."</td> </tr> <input class='button' type='submit' name='deleteRrRecord' value='Удалить запись домена'> </table></form> ![]() Я спрашивал форумах, одни пишут что нужен ajax, другие что достаточно javascript. Помогите пожалуйста. |
Для удаления нужен Ajax запрос на сервер, или где вы собираетесь удалять?
Показывать нужно HTML код, то есть просто взять результирующий со страницы без всякого РНР. |
Цитата:
и эти данные внести в появляющуюся форму. Я собираюсь чтоб новая форма отправляла запрос на сервер. Я не знаю ajax |
|
Цитата:
К примеру, результат запроса SOAP сервера вы отдали клиенту как форму (что у вас собственно и есть), в которой клиент может что-то удалить. То есть нажатие кнопки "Удалить", это удаление этой записи из таблицы в форме. Для этого Ajax не требуется. Удалив необходимое, эта форма отправляется на сервер для сохранения. Ни какой второй формы не требуется. Либо, запрос SOAP сервера, это сохранение данных на сервере, и одновременно выдача клиенту формы. В этом случае можно и флажками выбрать необходимые для удаления записи и отправить форму, сервер удалит выбранное. Можно как и в первом случае удалять каждую запись в таблице/форме отдельно, но с одновременным запросом к серверу для удаления выбранного на нем. Зачем посредники? Что за задача вообще стоит, если У меня php скрипт по получению списка записей с SOAP-сервере. Записи получаю виде формирования таблицы в массиве цикле. то что за удаление? |
Цитата:
В php что добавлять нужно? может на кнопку повесить onclick? |
Цитата:
зайдите на сайт http://juntik.ru/ логин olegalim@yandex.ru пароль R0k0B7g4 далее Доменное имя: juntik.ru кнопка "удалить" должна родить форму для повержения удаления |
Мне вход ни о чем не говорит. У вас странная логика, которую вы описали в теме - иметь две формы не понятно для чего.
Если запрошенное уже сохранено на сервере, тогда можно говорить о неком запросе на удаления на нем. Но на сервере данные будут сохранены под каким либо уникальным ключом. А удаление, это не отправлять форму со множеством значений этой записи, этого совсем не нужно, достаточно отправить серверу уникальный ключ этой записи. Вы либо некорректно описали суть задачи, либо ваша логика страдает излишеством, которое ни серверу, ни клиенту не нужно. |
Цитата:
Вторая форма появляется после того как клиент нажмет кнопку удалить. Чтоб клиент случайно не удалил запись. Разные люди бывают с разными болезнями например "Паркинсон, ДЦП" Про уникальный ключ я знаю, это id записи домена. Если я правильно думаю мне нужно с начала как-то получить значение строки Я написал так но не работает $(document).ready(function() { $("#butt_cler").on("click", function(event, elem){ $(this).closest("tr").find("td").each(function(idx, itm){ console.log(itm); }); }); }); |
Вторая форма не есть гарантия от случайного удаления, чтобы не было случайностей нужно спрашивать пользователя уверен ли он в своих действиях - cofirm-диалог.
У вас главная неразбериха в коде самой второй формы - не может быть в форме на клиенте, которая формируется по нажатию кнопки, РНР вставок. Вы не описываете суть задачи. Предположим, что удаление, это все-таки удаление данных на сервере, которые были сохранены как данные SOAP сервера. Каждая такая запись сохранена под идентификатором - поле ID в таблице. Эти данные пользователю отдаются просто таблицей, а не формой, в которой есть кнопки "Удалить". Значениями этих кнопок являются эти идентификаторы, то есть: <button value="'.$record->id.'">Удалить</button> id='butt_cler' у кнопок удалено, так как id должно быть уникальным значением, да и в данном случае оно не требуется. РНР по разному интерпретирует строковые значения вставленные в одинарные и двойные кавычки. Если двойные, то он будет производить разбор строки в поисках вставленных в нее переменных. В вашем случае, это нагрузить его бесполезной работой, а поэтому выгоднее echo 'строка с атрибутами в двойных кавычках'. Запрос на удаление: $(function() { var btn = $('button').click(function() { if(confirm('Вы уверены, что хотите удалить ID '+this.value+'?')) { var bt = this; btn.prop('disabled', 1); //заблокировать запросы от кнопок на время запроса сервера $.ajax({ //параметры запроса data: 'del='+this.value, success: function(data) { btn.prop('disabled', 0); //разрешаем запросы от кнопок //если сервер вернул ОК (это образно, а должен быть оговоренный параметр) //то удаляем строку в таблице принадлежащей этой кнопке $(bt).closest('tr').remove(); //иначе ошибка удаления } }) } }) }); А вот что вы делаете не понять, по крайней мере логика странная. |
Часовой пояс GMT +3, время: 13:49. |