Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Мы в твиттере!
Мы вконтакте!
Мы на яндексе!

Краснодарское время: 23 Май, 2012, 04:04:10

Страниц: [1] 2 3
Печать
Автор Тема: php таблицы + JavaScript  (Прочитано 3540 раз)
0 Пользователей и 1 Гость смотрят эту тему.
relictx    ↓ 
20 Январь, 2009, 11:24:59
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 4
Сообщений: 306
Сила слова: 1.31

Здравствуйте уважаемые эксперты!
Столкнулся со следующей задачей.
 
Необходимо создать таблицу вида:
Номер вопросаПользователиСуммаВывод

Перед загрузкой таблицы, идет выбор количества Пользователей. Осуществил на пхп методом передачи POST. Идет загрузка таблицы. Например выбрал 3 пользователя. Получил таблицу след вида.
 
Номер вопросаПользователь1Пользователь2Пользователь3СуммаВывод

А теперь самое главное, сам вопрос. Нужно добавить скрипт(я думаю это должен быть javascript), по нажатию на кнопку Добавить вопрос, добавлялось бы строка к таблице, где в каждое поле Пользователей Юзер вводит оценки. Например вот так:
Номер вопросаПользователь1Пользователь2Пользователь3СуммаВывод
1<input type=text><input type=text><input type=text>СуммаВывод

Добавить вопросУдалить вопрос

Сумма оценок считается в ячейке Сумма и т.д. Ну и кнопочку удалить вопрос.
Сложность для меня в том, что к сожалению, javascript я только начал изучать. С php то проблем вроде нет.
Буду рад любым советам, решениям, помощи, спасибо!
 
P.S. В итоге получаем что то типа вот такой таблицы:
Номер вопросаПользователь1Пользователь2Пользователь3СуммаВывод
11236Плохо
21010929Отлично

Добавить вопросУдалить вопрос

 
« Последнее редактирование: 20 Январь, 2009, 11:57:48 от relictx » Записан

И сказал апач кури мануал, ибо еррор, варнинг модул и хз. Да святиться имя твое, во имя контрла, альта и святого деля... Аминь!
Josh    ↓ 
20 Январь, 2009, 12:27:59 , спустя 1 час 3 минуты
НЕ ХУЕТА! ХУЕТА!

Группа: нинзя

Карма: 48
Сообщений: 1574
Сила слова: 3.05

1. Ведешь счётчик полей. К примеру
Text
var tr_count = 1;
2. Подключаешь желательно JQuery
3. при нажатии на "Добавить вопрос" делаешь так
Text
$("#tr_"+tr_count).after( "<tr id='tr_"+tr_count+"'><td><input type=text></td><td>............</td></tr>");
4. Для удаления, надо заоминать какой tr выделен, а потом $("#tr_"+tr_current).remove()
Так понятно? или готовый скрипт хотел видеть? :)
Записан

Иногда мне кажется, что все ебанулись. В остальное же время я в этом уверен.
relictx    ↓ 
20 Январь, 2009, 01:26:10 , спустя 58 минут 11 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 4
Сообщений: 306
Сила слова: 1.31


1. Ведешь счётчик полей. К примеру
Text
var tr_count = 1;
2. Подключаешь желательно JQuery
3. при нажатии на "Добавить вопрос" делаешь так
Text
$("#tr_"+tr_count).after( "<tr id='tr_"+tr_count+"'><td><input type=text></td><td>............</td></tr>");
4. Для удаления, надо заоминать какой tr выделен, а потом $("#tr_"+tr_current).remove()
Так понятно? или готовый скрипт хотел видеть? :)

Буду разбираться с javacript) Спасибо за примерный алгоритм)
Но как быть с количеством ячеек пользователи? Данная величина меняется  
« Последнее редактирование: 20 Январь, 2009, 01:37:02 от relictx » Записан

И сказал апач кури мануал, ибо еррор, варнинг модул и хз. Да святиться имя твое, во имя контрла, альта и святого деля... Аминь!
Josh    ↓ 
20 Январь, 2009, 01:41:50 , спустя 15 минут 40 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: нинзя

Карма: 48
Сообщений: 1574
Сила слова: 3.05



1. Ведешь счётчик полей. К примеру
Text
var tr_count = 1;
2. Подключаешь желательно JQuery
3. при нажатии на "Добавить вопрос" делаешь так
Text
$("#tr_"+tr_count).after( "<tr id='tr_"+tr_count+"'><td><input type=text></td><td>............</td></tr>");
4. Для удаления, надо заоминать какой tr выделен, а потом $("#tr_"+tr_current).remove()
Так понятно? или готовый скрипт хотел видеть? :)

Буду разбираться с javacript) Спасибо за примерный алгоритм)
Но как быть с количеством ячеек пользователи? Данная величина меняется  
Меняеться при загрузке страницы или без перезагрузки?
Записан

Иногда мне кажется, что все ебанулись. В остальное же время я в этом уверен.
relictx    ↓ 
20 Январь, 2009, 01:45:31 , спустя 3 минуты 41 секунду
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 4
Сообщений: 306
Сила слова: 1.31

В начале вроде писал, что есть php файл. Выбираем кол-во. Грузиться другой пхп файл, которому передается значение POST(кол-ва) и тем самым таблица меняется.
Text

<form method="POST">
<label for="exp">Выберите количество вопросов:</label>
<br>
<input id="exp" name="exp" type="text" value=<?php echo '"'.$_POST['exp'].'"';?>  />
<input type="submit" value="Выбрать">
</form>
 
Записан

И сказал апач кури мануал, ибо еррор, варнинг модул и хз. Да святиться имя твое, во имя контрла, альта и святого деля... Аминь!
Josh    ↓ 
20 Январь, 2009, 02:06:43 , спустя 21 минуту 12 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: нинзя

Карма: 48
Сообщений: 1574
Сила слова: 3.05

ну и ппц в чём тут проблема?
PHP
<table>
  <tr>
    <th>Номер вопроса</th>
    <?php $_POST['exp'] = 10;
      if(array_key_exists("exp" , $_POST)){
        $exp = $_POST['exp'];
      } else {
        $exp = 1;
      }
      if(intval($_POST['exp']) < 1){
        $exp = 1;
      }
        
      for($i=0; $i<$exp;$i++){
        ?>
        <th>Пользователь <?=($i+1); ?></th>
        <?php
      }
    ?>
  </tr>
</table>
Записан

Иногда мне кажется, что все ебанулись. В остальное же время я в этом уверен.
Josh    ↓ 
20 Январь, 2009, 02:08:00 , спустя 1 минуту 17 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: нинзя

Карма: 48
Сообщений: 1574
Сила слова: 3.05

вот тебе шапка
Записан

Иногда мне кажется, что все ебанулись. В остальное же время я в этом уверен.
relictx    ↓ 
20 Январь, 2009, 02:17:21 , спустя 9 минут 21 секунду
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 4
Сообщений: 306
Сила слова: 1.31


вот тебе шапка

Мы друг друга не поняли. Все что на пхп, я сделал, и это тоже.
Я имел ввиду как прописать в javascrupt'е данное решение? Ведь добавляться должно столько <td><input type=text......><td> сколько юзер задаст пользователей. Вот, теперь надеюсь, вы меня поняли)  
Записан

И сказал апач кури мануал, ибо еррор, варнинг модул и хз. Да святиться имя твое, во имя контрла, альта и святого деля... Аминь!
Josh    ↓ 
20 Январь, 2009, 02:18:52 , спустя 1 минуту 31 секунду
НЕ ХУЕТА! ХУЕТА!

Группа: нинзя

Карма: 48
Сообщений: 1574
Сила слова: 3.05



вот тебе шапка

Мы друг друга не поняли. Все что на пхп, я сделал, и это тоже.
Я имел ввиду как прописать в javascrupt'е данное решение? Ведь добавляться должно столько <td><input type=text......><td> сколько юзер задаст пользователей. Вот, теперь надеюсь, вы меня поняли)  
тоесть без перезагрузки страницы в ширину?
Записан

Иногда мне кажется, что все ебанулись. В остальное же время я в этом уверен.
relictx    ↓ 
20 Январь, 2009, 02:19:35 , спустя 43 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 4
Сообщений: 306
Сила слова: 1.31

Тоесть грубо говоря: Выбрал 3 пользователя. На тебе таблица с тремя пользователями. Далее нажал Добавить, на тебе строка ниже с инпутами под пользователями.
Записан

И сказал апач кури мануал, ибо еррор, варнинг модул и хз. Да святиться имя твое, во имя контрла, альта и святого деля... Аминь!
relictx    ↓ 
20 Январь, 2009, 02:23:37 , спустя 4 минуты 2 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 4
Сообщений: 306
Сила слова: 1.31

По шагам, еще раз, может я не правильно объяснил, извините.
 
1) Файл choose.php
Выберите кол-во пользователей. Ниже инпут. Вводим 3.
2) Грузиться файл table.php
Таблица с 3-мя пользователями. (см. первое сообщение)
3) Нажимаем добавить
Появляется строка под заглавиями(см. первое сообщение)
 
Без перезагрузки страницы или с ней, наверное без разницы.
Записан

И сказал апач кури мануал, ибо еррор, варнинг модул и хз. Да святиться имя твое, во имя контрла, альта и святого деля... Аминь!
Josh    ↓ 
20 Январь, 2009, 02:23:46 , спустя 9 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: нинзя

Карма: 48
Сообщений: 1574
Сила слова: 3.05

Если да то:
1. У тебя есть параметр tr_count - это максимальный айдишник tr-a
2. Держи такой-же и для td-щек и нумеруй скажем "td_"+tr_count+"_"+td_count
3. Элементрарным перебором вычисляешь последний существующий id-шник tr-а(последний может быть удалён)
4. Элементрарным перебором вычисляешь последний существующий id-шник td в вычесленом tr-е(последний может быть удалён)
5. Циклом от 0-я до tr_count перебираешь tr-ы и если он существует делаешь к "td_"+tr_id+"_"+(значение из пп4).after("<td>some text</td>");
Записан

Иногда мне кажется, что все ебанулись. В остальное же время я в этом уверен.
Josh    ↓ 
20 Январь, 2009, 02:26:25 , спустя 2 минуты 39 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: нинзя

Карма: 48
Сообщений: 1574
Сила слова: 3.05

Блин - ну я в шоке - зачем это?
PHP
<table>
  <tr>
    <th>Номер вопроса</th>
    <?php $_POST['exp'] = 10;
      if(array_key_exists("exp" , $_POST)){
        $exp = $_POST['exp'];
      } else {
        $exp = 1;
      }
      if(intval($_POST['exp']) < 1){
        $exp = 1;
      }
       
      for($i=0; $i<$exp;$i++){
        ?>
        <th>Пользователь <?=($i+1); ?></th>
        <?php
      }
    ?>
  </tr>
</table>
Тут шапка. Далее - если тебя смущает как js-ом выплюнуть определённое кол-во td-шек, то опять же выплюнь пхп-ой
var td_count = <?=$exp ?>;
а в js-е , когда добавляешь строку, просто скалеивай то количетво td-шек, которое определено в td_count
Записан

Иногда мне кажется, что все ебанулись. В остальное же время я в этом уверен.
Josh    ↓ 
20 Январь, 2009, 02:28:38 , спустя 2 минуты 13 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: нинзя

Карма: 48
Сообщений: 1574
Сила слова: 3.05


1. Ведешь счётчик полей. К примеру
Text
var tr_count = 1;
2. Подключаешь желательно JQuery
3. при нажатии на "Добавить вопрос" делаешь так
Text
$("#tr_"+tr_count).after( "<tr id='tr_"+tr_count+"'><td><input type=text></td><td>............</td></tr>");
4. Для удаления, надо заоминать какой tr выделен, а потом $("#tr_"+tr_current).remove()
Так понятно? или готовый скрипт хотел видеть? :)

3. при нажатии на "Добавить вопрос" делаешь так
Text

text_html = "<tr id='tr_"+tr_count+"'>";
for(i=0;i<td_count;i++){
  text_html += "<input type=text></td>";
}
text_html .= "</tr>";
$("#tr_"+tr_count).after( text_html);

Записан

Иногда мне кажется, что все ебанулись. В остальное же время я в этом уверен.
relictx    ↓ 
20 Январь, 2009, 02:30:34 , спустя 1 минуту 56 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 4
Сообщений: 306
Сила слова: 1.31

Ок, изучаю javascript дальше.))
Спасибо за ответ, буду пробовать.
Записан

И сказал апач кури мануал, ибо еррор, варнинг модул и хз. Да святиться имя твое, во имя контрла, альта и святого деля... Аминь!
Страниц: [1] 2 3
Печать
 

Перейти в: