Добавление строки таблицы

Тема в разделе "PHP", создана пользователем jamce123, 16 сен 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. jamce123

    jamce123 Постоялец

    Регистр.:
    7 апр 2009
    Сообщения:
    70
    Симпатии:
    5
    В php я полный ноль, умею только верстать и загружать на хостинг вордпресс)).

    Вообщем нужно сделать так: я захожу на страничку на которой можно ввести (допустим 7) имен, нажимаю на кнопку "добавитЬ" и добавляется строка таблицы с этими данными.
    ____________________________________
    |имя1|имя2|имя3|имя4|имя5|имя6|имя7|

    Поле для ввода данных: | | | | | | | |
    |добавить|

    Как это реализовать на php?
    То есть в какой-то файлик добавляется html код (в данном случае обычная страница в файл добавляется <tr><td>7раз</td></tr>).
     
  2. shmitacc

    shmitacc Постоялец

    Регистр.:
    31 авг 2009
    Сообщения:
    76
    Симпатии:
    6
    вот по быстрому и по простому

    PHP:
    <?php 
    if (!isset($_GET['action']))
    {
    ?>
    <form id="form1" name="form1" method="post" action="my.php?action">

      <input type="text" name="textfield" />

      <input type="text" name="textfield2" />



        <input type="text" name="textfield3" />

        <input type="text" name="textfield4" />



        <input type="text" name="textfield5" />

        <input type="text" name="textfield6" />



        <input type="text" name="textfield7" />



        <input type="submit" name="Submit" value="Submit" />


    </form>
    <?php
    }
    else 

    $t1 = @$_POST['textfield'];
    $t2 = @$_POST['textfield2'];
    $t3 = @$_POST['textfield3'];
    $t4 = @$_POST['textfield4'];
    $t5 = @$_POST['textfield5'];
    $t6 = @$_POST['textfield6'];
    $t7 = @$_POST['textfield7'];

    ?>
    <table>
    <tr>

    <td><?php echo $t1;?></td>
    <td><?php echo $t2;?></td>
    <td><?php echo $t3;?></td>
    <td><?php echo $t4;?></td>
    <td><?php echo $t5;?></td>
    <td><?php echo $t6;?></td>
    <td><?php echo $t7;?></td>

    <td>

    <td>
    </tr>
    </table>
     
    jamce123 нравится это.
  3. Kloster

    Kloster

    Регистр.:
    22 июн 2009
    Сообщения:
    216
    Симпатии:
    12
    Может лучше сделать массивами и циклами? Так универсальнее будет.
     
    jamce123 нравится это.
  4. skillu

    skillu Создатель

    Регистр.:
    12 сен 2008
    Сообщения:
    17
    Симпатии:
    1
    Вот чуть покороче вариант, все на одной странице происходит.

    HTML:
    <?php 
    if ((count ($_POST)) < 7 ) {
    echo <<<METKA
    <form action="{$_ENV['PHP_SELF']}" method="post" name="form">
    <input name="name1" type="text" size="20" maxlength="20">
    <input name="name2" type="text" size="20" maxlength="20">
    <input name="name3" type="text" size="20" maxlength="20">
    <input name="name4" type="text" size="20" maxlength="20">
    <input name="name5" type="text" size="20" maxlength="20">
    <input name="name6" type="text" size="20" maxlength="20">
    <input name="name7" type="text" size="20" maxlength="20">
    <br>
    <br>
    <center>
    <input name="" type="submit" value="go">
    </center>
    </form>
    METKA;
    } else {
    echo "<table border='1' bordercolor='#000000'><tr>";
    foreach ($_POST as $val) {
    echo "<td width='150' align='center'>$val</td>";
    }
    } 	 
    ?>
    </tr>
    </table>
     
    jamce123 нравится это.
  5. jamce123

    jamce123 Постоялец

    Регистр.:
    7 апр 2009
    Сообщения:
    70
    Симпатии:
    5
    а как сделать чтобы он еще записывал?
    то есть я открываю страницу name.php на ней вот это:
    [​IMG]

    забиваю в поля, жму sumbit и на этой же странице добавляется сверху (над недавно размещенной строкой) новая строка, с данными, которые я только сейчас ввел. и при это когда я захожу на name.php данные сохранились. Возможно без базы данных?
    То есть на этой странице я буду хранить данные о товарах.
     
  6. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    записать в базу данных, после, при гинерации страницы, считать необходимые данные из базы
     
    jamce123 нравится это.
  7. rex1963

    rex1963

    Регистр.:
    19 фев 2007
    Сообщения:
    228
    Симпатии:
    47
    Можно сделать так, только чуть подработать
    PHP:
    <?php
    define
    ("GBook""gbook.dat"); // имя файла с данными прайса
    // Загружает прайс с диска. Возвращает содержание прайса.
    function LoadBook($fname) {
      if (!
    file_exists($fname)) return array();
      
    $Book unserialize(file_get_contents($fname)); 
      return 
    $Book;
    }
    // Сохраняет содержимое прайса в файле.
    function SaveBook($fname$Book) {
      
    file_put_contents($fnameserialize($Book));
    }

    // Обработка формы, если Шаблон запущен при отправке формы.
    // Если нажата кнопка Добавить... 
    if (!empty($_REQUEST['doAdd'])) {
      
    // Сначала - загрузка прайса.
      
    $tmpBook LoadBook(GBook);
      
    // Добавить в в прайс
      
    $tmpBook = array(time() => $_REQUEST['new']) + $tmpBook;
      
    // Записать прайс на диск.
      
    SaveBook(GBook$tmpBook);
    }
    // Данный компонент не генерирует никаких данных.
    $Data null;
    //форма отправки данных
    ?>
    <form method="post">
     <input type=text name="new[name1]"><br>
     <input type=text name="new[name2]"><br>
      <input type=text name="new[name3]"><br>
      <input type="submit" name="doAdd" value="Добавить!">
    </form>
    <?php

    $Data 
    LoadBook(GBook);
    ?>
    <table>
    <?php
    foreach ($Data as $id=>$e) {?>
    <tr><td><?=$e['name1']?></td><td><?=$e['name2']?></td><td><?=$e['name3']?></td></tr>

    <?}?>
    </table>
     
    jamce123 нравится это.
  8. jamce123

    jamce123 Постоялец

    Регистр.:
    7 апр 2009
    Сообщения:
    70
    Симпатии:
    5
    а как сделать без базы данных? не хочется с базами заморачиваться.
     
  9. Squoll2

    Squoll2 Постоялец

    Регистр.:
    2 июн 2009
    Сообщения:
    80
    Симпатии:
    15
    Так тебе выше и был приведён пример без базы данных. Всё будет храниться в файле gbook.dat
     
Статус темы:
Закрыта.