Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание таблиц, Создание таблиц 
V
    Опции темы
kamat0z
Дата 22.11.2006, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 24.10.2006

Репутация: нет
Всего: нет



У меня проблема. Написал скрипт, который позволяет создавать таблицу и записывать ее в файл, но почему-то он записывает только тэги, без введенной информации. Помогите разобраться

Код

<?php
print"
<table>
<form name=vvod>
<tr>
<td>Кол-во столбцов: </td>
<td><input name='td' type='text'></td></tr>
<tr>
<td>Кол-во строк: </td>
<td><input name='tr' type='text'></td></tr>
<tr>
<td colspan='2'>
<input type='submit' value='Создать'></td></tr></table><br><br><br>";


echo '<table border=1><form name=table>';
for($i=0;$i<$tr;$i++){
echo '<tr>';
for($j=0;$j<$td;$j++)
{
echo '<td><input type="text" name="tdname_'.$i.'_'.$j.'" /></td>';
}
echo '</tr>';
}
echo '</table>';
echo '<input type="submit" value="Сохранить"></form>';

for($i=0;$i<$tr;$i++){
$str='<tr>';
for($j=0;$j<$td;$j++)
{
$str='<td>'.$_REQUEST['tdname_'.$i.'_'.$j].'</td>';
}
$str='</tr>';
}

$fo = @fopen("some.dat","a");
$string = "<table>$str</table>";
fputs($fo,$string);
fclose($fo);
die("Таблица создана!");

?>



Это сообщение отредактировал(а) kamat0z - 22.11.2006, 21:01
PM MAIL   Вверх
szz
Дата 22.11.2006, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 8
Всего: 33



Покажи в теге code=php, а то неинтересно смотреть.


--------------------
PM   Вверх
kamat0z
Дата 22.11.2006, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 24.10.2006

Репутация: нет
Всего: нет



Ну, а что дальше?
Мне вопрос помочь решить нужно, а не выделением по цвету кода заниматься
PM MAIL   Вверх
Andres2703
Дата 22.11.2006, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 9.9.2006
Где: Иваново

Репутация: нет
Всего: нет



а где у тебя инфа то вписывается?
PM WWW ICQ   Вверх
kamat0z
Дата 22.11.2006, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 24.10.2006

Репутация: нет
Всего: нет



Все , всем спасибо, разобрался сам smile

PM MAIL   Вверх
szz
Дата 22.11.2006, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 8
Всего: 33



Попробуй так. Я не протестировал, но должно работать. В комментах указал твои огрехи.
  Итабы внутри if и for, а то иначе нечитабельно.
Код

<?
// ставлю экшн для уверенности, и метод пост!
print "
<table>
<form name=vvod action='".basename(__FILE__)."' method=post>
<tr>
<td>Кол-во столбцов: </td>
<td><input name='td' type='text'></td></tr>
<tr>
<td>Кол-во строк: </td>
<td><input name='tr' type='text'></td></tr>
<tr>
<td colspan='2'>
<input type='submit' value='Создать'></td></tr></table>
<br><br><br>";

// не выполняем, если не установлена переменная td
if(isset($_REQUEST['td'])){
    // отправляю переменную saveit чтоб мы знали что следующим шагом сохранять надо!
    // да и td и tr - а то как мы в сделующем шаге будем знать их?
    echo '<table border=1><form name=table 
            action="'.basename(__FILE__).'?saveit=yes&tr='.$_REQUEST['tr'].'&td='.$_REQUEST['td'].'"
            method=post>';
    // не открытые переменные, а request массив! А то не везде работать будет.
    for($i=0;$i<$_REQUEST['tr'];$i++){
        echo '<tr>';
            for($j=0;$j<$_REQUEST['td'];$j++)
            {
                echo '<td><input type="text" name="tdname_'.$i.'_'.$j.'" /></td>';
            }
        echo '</tr>';
    }
    echo '</table>';
    echo '<input type="submit" value="Сохранить"></form>';
}    
// не выполняем, если не установлена переменная saveit
if(isset($_REQUEST['saveit'])){
    for($i=0;$i<$_REQUEST['tr'];$i++){
        $str='<tr>';
            for($j=0;$j<$_REQUEST['td'];$j++)
            {
                $str='<td>'.$_REQUEST['tdname_'.$i.'_'.$j].'</td>';
            }
        $str='</tr>';
    }
    $fo = @fopen("some.dat","a");
    $string = "<table>$str</table>";
    fputs($fo,$string);
    fclose($fo);
    // die импользуем только для умирания от ошибки! А тут надо echo!
    echo "Таблица создана!";
}
?>



Добавлено @ 22:36 
Да, и в чем была проблема?


--------------------
PM   Вверх
kamat0z
Дата 23.11.2006, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 24.10.2006

Репутация: нет
Всего: нет



szz, проблема была в том, что скрипт не передавал значение полей tr и td во второй цикл и соответственно цикл нарушался и не записывал в файл нужную информацию.

Твой вариант, почему-то не хочет в файл писать в файл smile

Я решил этот вопрос записыванием значений tr и td во временный файл. Потом данные из него считываются и все работает smile
Но конечно было бы лучше, если бы это нормально передавалось внутри файла smile
Буду разбираться в вашем способе, потому что вроде все грамотно написано, но надпись таблица создана не выводится и в файл запись не производится
PM MAIL   Вверх
szz
Дата 23.11.2006, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 8
Всего: 33



Цитата

Я решил этот вопрос записыванием значений tr и td во временный файл. 

  Очень плохо! Передавай их во второй фотме! Как я это сделал:
Код

    echo '<table border=1><form name=table 
            action="'.basename(__FILE__).'?saveit=yes&tr='.$_REQUEST['tr'].'&td='.$_REQUEST['td'].'"
            method=post>';


Добавлено @ 11:59 
А не сохранется, потому что кто-то забыл первую форму закрыть!


Цитата

<input type='submit' value='Создать'></td></tr></table><br><br><br>";

  Почему после "... value='Создать'>" нету </form>?


--------------------
PM   Вверх
kamat0z
Дата 23.11.2006, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 24.10.2006

Репутация: нет
Всего: нет



Цитата

  Почему после "... value='Создать'>" нету </form>? 

ой, ошибочка вышла smile


szz, огромное спасибо !!! добавил бы тебе плюс, да немогу smile

А чем хуже эти переменные в файл записывать?
PM MAIL   Вверх
szz
Дата 23.11.2006, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 8
Всего: 33



А тем, что если несколько человек одновременно обращаются к скрипту, один выбрал одно, другой - другое - то у них глючить будет.
  Представь, сидит чел, выбрал таблицу 2х2. Потом сидит, тупит, заполняет ее.
  А в это время другой шустро выбрал 5х5. Так у первого вдруг непонятно отчего таблица станет 5х5, потому что временные переменные торого считались! Удивится первый и подумает что у тебя скрипт глюкавый (и будет, собстна, прав!).


--------------------
PM   Вверх
kamat0z
Дата 23.11.2006, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 24.10.2006

Репутация: нет
Всего: нет



Ну вообще этот скрипт для админ панели smile
Так что только один чел будет его использовать smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0487 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.