Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как правильно присвоить значение
 
 автор: value   (20.07.2006 в 01:00)   письмо автору
 
 

Есть гостевая книга. В режиме ответа на сообщения нужно заполнить input и textarea.

Приблизительно так:

for ($i=$end-1; $i>$start-2; $i--)
{

<input name=name type=text value='<? echo $lines[$i]->showDate(); ?>' >
<textarea name=answer> <? echo $lines[$i]->showAnswer(); ?> </textarea>
}

но input и textarea не заполняются, что я делаю не так ?

При простом выводе по циклу например:

echo $lines[$i]->showAnswer();
echo "<br>";

все выводиться нормально.

   
 
 автор: cheops   (20.07.2006 в 02:05)   письмо автору
 
   для: value   (20.07.2006 в 01:00)
 

Посмотрите исходный текст страницы (в контекстном меню, правой кнопки мыши по окну браузера) атрибут value в input заполняется текстом?

   
 
 автор: value   (20.07.2006 в 10:30)   письмо автору
 
   для: cheops   (20.07.2006 в 02:05)
 

input и textarea заполняются явно таким текстом(по циклу)

<? echo Object id #84->showDate(); ?>
<? echo Object id #84->showAnswer();?>

<? echo Object id #83->showDate(); ?>
<? echo Object id #83->showAnswer();?>

и так далее

   
 
 автор: Trianon   (20.07.2006 в 10:58)   письмо автору
 
   для: value   (20.07.2006 в 10:30)
 

Приведите весь оператор вывода, а не его кусок.
У Вас явно происходит подстановка переменных в строки, ограниченные кавычками.
Отсюда такой вывод.

   
 
 автор: value   (21.07.2006 в 00:46)   письмо автору
 
   для: Trianon   (20.07.2006 в 10:58)
 

Приведу вкратце код:

Вспомогательный класс gbClass

class gbClass
{
var $gbDate;
var $gbFrom;
var $gbEmail;
var $gbMessage;
var $gbAnswer;

// Set the Guestbook Entry Field Variables -------

function setGBVars($a,$b,$c,$d,$e)
{
$this->gbDate = $a;
$this->gbFrom = $b;
$this->gbEmail = $c;
$this->gbMessage = $d;
$this->gbAnswer = $e;
}

// Show the Guestbook Entry Date -----------------

function showDate()
{
echo $this->gbDate;
}

// Show the Guestbook Entry Answer -----------------

function showAnswer()
{
echo stripslashes($this->gbAnswer);
}
.
.
.
и так далее

}

Далее открываем файл и считываем данные

$filename = "../data/list.txt";
$handle = fopen($filename, "r");

if (filesize($filename) == 0){
print "No enteries to delete";

else
{

$datain = fread($handle, filesize($filename));
fclose($handle);
$out = explode("<!-- E -->", $datain);

$outCount = count($out) - 1;
$j = $outCount-1;

if ($order == "desc")
{
for ($i=0; $i<=$outCount; $i++)
{
$lines[$j] = unserialize($out[$i]);
$j = $j - 1;
}
}
else
{
for ($i=0; $i<=$outCount; $i++)
{
$lines[$i] = unserialize($out[$i]);
}
}
.
.
.

Ну и дальше то что я уже писал

for ($i=$end-1; $i>$start-2; $i--)
{

<input name=name type=text value='<? echo $lines[$i]->showDate(); ?>' >
<textarea name=answer> <? echo $lines[$i]->showAnswer(); ?> </textarea>
}

   
 
 автор: Trianon   (21.07.2006 в 09:49)   письмо автору
 
   для: value   (21.07.2006 в 00:46)
 

Вот это:

for ($i=$end-1; $i>$start-2; $i--)
{
<input name=


Не может тэг input выступать в качестве оператора PHP

[поправлено модератором]

   
 
 автор: value   (21.07.2006 в 20:27)   письмо автору
 
   для: Trianon   (21.07.2006 в 09:49)
 

вообще полный код для этого случая такой(в первом сообщении я слишком сократил):
for ($i=$end-1; $i>$start-2; $i--)
{
...
echo "<table width=527 cellspacing=2 cellpadding=1 border=0 align=center class=p>";
echo "<tr><td align=right>$listDatetxt:</td><td align=center><input name=name type=text value='<? echo $lines[$i]->showDate(); ?>'></td></tr>";

echo "<tr><td align=right>$yourAnswertxt</td><td align=center><textarea name=answer rows=5 cols=80> <? echo $lines[$i]->showAnswer(); ?> </textarea></td></tr>";
echo "</table>";
...
}

что здесь не так ?

   
 
 автор: Trianon   (21.07.2006 в 21:27)   письмо автору
 
   для: value   (21.07.2006 в 20:27)
 

Неправильно то, что если тег скрипта уже открыт, от перед тем как его открывать еще раз, его надо сперва закрыть. Или использовать другие способы вывода данных:


for ($i=$end-1; $i>$start-2; $i--)
{
...
echo "<table width=527 cellspacing=2 cellpadding=1 border=0 align=center class=p>";
echo "<tr><td align=right>$listDatetxt:</td><td align=center><input name=name type=text value='" .  $lines[$i]->showDate() . "'></td></tr>";

echo "<tr><td align=right>$yourAnswertxt</td><td align=center><textarea name=answer rows=5 cols=80> " . $lines[$i]->showAnswer() . " </textarea></td></tr>";
echo "</table>";
...
}


А сокращать приводимый код следует, не нарушая хотя бы лексический уровень, если не синтаксис
for(...)
{
    echo "<table ...> ... <input ... value='".  $lines[$i]->showDate() ."'>...</table>";
}

А не резать по живому.

   
 
 автор: value   (21.07.2006 в 22:41)   письмо автору
 
   для: Trianon   (21.07.2006 в 21:27)
 

Спасибо за критику.

При таком выводе как Вы написали, у меня данные выводятся не в textarea например, а над ним.
Что не так ?

   
 
 автор: value   (23.07.2006 в 19:22)   письмо автору
 
   для: value   (21.07.2006 в 22:41)
 

Все разобрался! Всем спасибо!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования