Сообщение от 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_(приклеенный префикс).
Правилен ли такой подход? если да. то подскажите как это сделать.
Или это можно осуществить только с помощью селекторов?