Показать сообщение отдельно
  #4 (permalink)  
Старый 22.08.2014, 08:21
Новичок на форуме
Отправить личное сообщение для malivadim Посмотреть профиль Найти все сообщения от malivadim
 
Регистрация: 21.08.2014
Сообщений: 6

Сообщение от Rise Посмотреть сообщение
malivadim, зачем тэг form? id тоже будет меняться что-ли, зачем там input? зачем два name у input sort? масса вопросов!
Это будет страница админки, на самом деле, там еще много столбцов, но они сути дела не меняют, приложу картинку для наглядности:



На самом деле, полю id input не нужен, он будет просто как текст.

Допустим, мне надо поменять сортировку у категории, изменил, а она ajax'сом полетела в БД.
Изменил "Родителя" а она опять ajax'сом в БД. Все быстро и удобно. А для этого мне нужно отправить на сервер 2 параметра:
1. id - категории
2. новое значения изменяемого поля.

Вообще я потом все характеристики категории хочу так редактировать, для каждого столбца(поля) написав соотв функцию.

Первое что в голову пришло, видите на картинке.

По поводу 2-х name, это я уже намудрил после многочисленных экспериментов.

Вообще, вот полный код таблицы:
<table class="adm_table_cat">
<tr>
	<td class="" width="200">Название</td>
	<td width="30px">id</td>
    <td width="75px">Родитель</td>
	<td width="75px">Уровень</td>
	<td  width="85px">Сортировка</td>
	<td width="65px">Статус</td>
    <td width="170px">Иконка</td>
</tr>
<form action="#" method="get">
<?php foreach(массив категорий):?>
<tr>
    <td><a href="#">cat_name</a></td>
	<td><p class="cat_id">id</p></td>
	<td><input type="text" name="parent" size="1" value="parent"/></td>
	<td><select name="level_cat">
    <option <?php if($row['level_cat']== '1') echo 'selected="selected"';?>>1</option>
    <option <?php if(level_cat== '2') echo 'selected="selected"';?>>2</option>
    <option <?php if('level_cat== '3') echo 'selected="selected"';?>>3</option>
    <option <?php if(level_cat== '4') echo 'selected="selected"';?>>4</option>
    </select></td>
	<td><input class="sort" name="sort" type="text"  size="1" value="order_cat"/></td>
	<td><input type="checkbox" name="activ" <?php if(active == '1') echo 'checked="checked"';?>/></td>
    <td><input type="text" name="icon_url" size="22" value="icon_url"/></td>
</tr>
<?php endforeach;?>
</form>
</table>

Я опустил многие php элементы. и id поместил в тэг p, скорее так.
Соответственно, id у категории естественно будет меняться, как и все остальные значения.

ksa,спасибо, но предложенный вариант, скорее подходит для однострочной таблицы, в моем же случае, как видите нужен цикл. Но я его попробовал, у меня с многострочной таблицей не работает.
$("form").each(function(){
      $(".sort").change(function(){ 
        var order_cat = $(this).val();
        var cat_id = $('.cat_id').val();
        }); 
    });

так у меня получается взять новое значение в переменную order_cat, но cat_id всегда содержит id первой строки (категории). оно и понятно, я не прохожусь по нему циклом.
Как вариант думал сделать так:

классу абзаца id прибавить в цикле на php префикс, например: cat_id_1, соответственно следующие cat_id_2, cat_id_3 и т.д.
классу sort тоже самое: sort_1, sort_2, sort_3 и т.д.

После чего проходиться циклом each по классу .sort_префикс (но не знаю как)
Извлечь этот префикс и в переменную cat_id положить значение поля с классом cat_id_(приклеенный префикс).

Правилен ли такой подход? если да. то подскажите как это сделать.
Или это можно осуществить только с помощью селекторов?

Последний раз редактировалось malivadim, 22.08.2014 в 08:59.
Ответить с цитированием