Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: проблема с выводом данных
Форумы портала PHP.SU » PHP » Программирование на PHP » проблема с выводом данных

Страниц (1): [1]
 

1. de'vovan - 04 Января, 2007 - 14:57:58 - перейти к сообщению
Здраствуйте, нужна ваша помощь, я уже неделю делаю одну страницу и никак не могу понять в чем дело.
Делаю я страницу отправки данных из формы в виде таблицы. Никак не получается организовать вывод выбранных
пользователем checkbox(ов). Делаю так: проверив была ли нажата кнопка ОТПРАВИТЬ, делаю проверку выбранных
checkbox(ов), и если галочка была поставлена, записываю значение в массив $tip[]:
PHP:
скопировать код в буфер обмена
  1.         if (isset($_POST['baza']) == TRUE) { $tip[] = $_POST['baza']; }
  2.         if (isset($_POST['gost']) == TRUE) { $tip[] = $_POST['gost']; } и т.д.

Создал функцию вывода массива $tip[]:
PHP:
скопировать код в буфер обмена
  1. function tip($tip)
  2. {
  3.         $tip_mass = count($tip);
  4.         for ($i = 0; $i < $tip_mass; $i++)
  5.         {
  6.                 echo $tip[$i] . "<br>";
  7.         }
  8. }

Затем записываю в переменную $message тело письма, состоящего из таблицы с переданными данными:
PHP:
скопировать код в буфер обмена
  1. $message = "
  2.         <html>
  3.         <head>
  4.         <title></title>
  5.         <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  6.         </head>
  7.         <body>
  8.         <table>
  9.           <tr>
  10.                 <th scope="col">Поле</th>
  11.                 <th scope="col">Значение</th>
  12.           </tr>

А вот ячейка, в которой надо вывести значения массива $tip функцией tip() :
PHP:
скопировать код в буфер обмена
  1. <td>" . tip($tip) . "</td>

Проблема в том, что массив со значениями выводится перед таблицей, а не в ее ячейке.
Могу выложить исходник. Заранее спасибо!Улыбка
2. evgenijj - 04 Января, 2007 - 15:33:16 - перейти к сообщению
Прикрепляй исходники - посмотрю на досуге.

P.S. Странно как-то ты значения checkbox сохраняешь. Пусть есть 5 checkbox
PHP:
скопировать код в буфер обмена
  1.  
  2. <input type="checkbox" name="cb1"/>
  3. <input type="checkbox" name="cb2"/>
  4. <input type="checkbox" name="cb3"/>
  5. <input type="checkbox" name="cb4"/>
  6. <input type="checkbox" name="cb5"/>
  7.  

Пользователь отметил 1, 3 и 5-ый. Моссив $tip содержит три значения
PHP:
скопировать код в буфер обмена
  1.  
  2. $tip[0] = "On";
  3. $tip[1] = "On";
  4. $tip[2] = "On";
  5.  

Но какие checkbox были выбраны: 1, 3 и 5 или 3, 4, 5 или 1, 2, 3?
3. f0rm4t - 04 Января, 2007 - 15:40:55 - перейти к сообщению
У тебя проблема с разметкой. Открой html-код сгенерированной страницы и ты поймешь в чем трабла.
4. de'vovan - 04 Января, 2007 - 17:16:15 - перейти к сообщению
f0rm4t пишет:
У тебя проблема с разметкой. Открой html-код сгенерированной страницы и ты поймешь в чем трабла.

УлыбкаКак вы быстро отвечаете, реально!Улыбка
Посмотрел код сгенерированной страницы, все ОК. Что бы вы могли разобраться, вот исходник:
5. f0rm4t - 04 Января, 2007 - 17:43:34 - перейти к сообщению
Хе.. у тебя echo в переменную идет? Делай примерно так:
PHP:
скопировать код в буфер обмена
  1.  
  2. ...
  3. function tip($tip)
  4. {
  5.         $tip_mass = count($tip);
  6.         for ($i = 0; $i < $tip_mass; $i++)
  7.         {
  8.                 $res .= $tip[$i] . ">БР<";
  9.         }
  10.         return $res;
  11. }
  12. ...
  13. $tip[] = " ";
  14.   echo "<table width=\"400\" border=\"1\" cellspacing=\"2\" cellpadding=\"2\" bgcolor=\"#fffb9b\">
  15.           <tr>
  16.                 <th scope=\"col\">Поле</th>
  17.                 <th scope=\"col\">Значение</th>
  18.           </tr>
  19.           <tr>
  20.                 <td>Ф.И.О.</td>
  21.                 <td>" . str_replace('<', '<', $_POST['fio']) . "</td>
  22.           </tr>
  23.           <tr>
  24.                 <td>телефон</td>
  25.                 <td>" . str_replace('<', '<', $_POST['tel']) . "</td>
  26.           </tr>
  27.           <tr>
  28.                 <td>почта</td>
  29.                 <td>" . str_replace('<', '<', $_POST['email']) . "</td>
  30.           </tr>
  31.           <tr>
  32.                 <td>из</td>
  33.                 <td>" . str_replace('<', '<', $_POST['iz']) . "</td>
  34.           </tr>
  35.           <tr>
  36.                 <td>кол-во человек</td>
  37.                 <td>" . str_replace('<', '<', $_POST['kol-vo']) . "</td>
  38.           </tr>
  39.           <tr>
  40.                 <td>транспорт</td>
  41.                 <td>" . str_replace('<', '<', $_POST['transport']) . "</td>
  42.           </tr>
  43.           <tr>
  44.                 <td>дата приезда</td>
  45.                 <td>" . str_replace('<', '<', $_POST['data1']) . "</td>
  46.           </tr>
  47.           <tr>
  48.                 <td>дата отъезда</td>
  49.                 <td>" . str_replace('<', '<', $_POST['data2']) . "</td>
  50.           </tr>
  51.           <tr>
  52.                 <td>предпочитаю</td>
  53.                 <td>" . tip($tip) . "</td>
  54.           </tr>
  55.           <tr>
  56.                 <td> расчитываю на</td>
  57.                 <td>" . str_replace('<', '<', $_POST['summa']) . "руб." . "</td>
  58.           </tr>
  59.           <tr>
  60.                 <td>дополнительно:</td>
  61.                 <td>" . str_replace('<', '<', $_POST['dopoln']) . "</td>
  62.           </tr>
  63.         </table>";
  64. }
6. de'vovan - 04 Января, 2007 - 17:56:22 - перейти к сообщению
Заработало, спасибо огромноеРадость
А можно пояснить для чего были сделаны подобные изменения в функции, как это работает?
вот только появилась ошибка
CODE (text):
скопировать код в буфер обмена
  1.  [color=blue]Notice: Undefined variable: res in z:homevip.suwwwphpforma.php on line 8[/color]
7. f0rm4t - 04 Января, 2007 - 18:00:55 - перейти к сообщению
А, ну тогда функцию оставь из куска выше, а таблицу эту:
PHP:
скопировать код в буфер обмена
  1. $message = "
  2.         <table width=\"400\" border=\"1\" cellspacing=\"2\" cellpadding=\"2\" bgcolor=\"#fffb9b\">
  3.           <tr>
  4.                 <th scope=\"col\">Поле</th>
  5.                 <th scope=\"col\">Значение</th>
  6.           </tr>
  7.           <tr>
  8.                 <td>Ф.И.О.</td>
  9.                 <td>" . str_replace('<', '<', $_POST['fio']) . "</td>
  10.           </tr>
  11.           <tr>
  12.                 <td>телефон</td>
  13.                 <td>" . str_replace('<', '<', $_POST['tel']) . "</td>
  14.           </tr>
  15.           <tr>
  16.                 <td>почта</td>
  17.                 <td>" . str_replace('<', '<', $_POST['email']) . "</td>
  18.           </tr>
  19.           <tr>
  20.                 <td>из</td>
  21.                 <td>" . str_replace('<', '<', $_POST['iz']) . "</td>
  22.           </tr>
  23.           <tr>
  24.                 <td>кол-во человек</td>
  25.                 <td>" . str_replace('<', '<', $_POST['kol-vo']) . "</td>
  26.           </tr>
  27.           <tr>
  28.                 <td>транспорт</td>
  29.                 <td>" . str_replace('<', '<', $_POST['transport']) . "</td>
  30.           </tr>
  31.           <tr>
  32.                 <td>дата приезда</td>
  33.                 <td>" . str_replace('<', '<', $_POST['data1']) . "</td>
  34.           </tr>
  35.           <tr>
  36.                 <td>дата отъезда</td>
  37.                 <td>" . str_replace('<', '<', $_POST['data2']) . "</td>
  38.           </tr>
  39.           <tr>
  40.                 <td>предпочитаю</td>
  41.                 <td>" . tip($tip) . "</td>
  42.           </tr>
  43.           <tr>
  44.                 <td> расчитываю на</td>
  45.                 <td>" . str_replace('<', '<', $_POST['summa']) . "руб." . "</td>
  46.           </tr>
  47.           <tr>
  48.                 <td>дополнительно:</td>
  49.                 <td>" . str_replace('<', '<', $_POST['dopoln']) . "</td>
  50.           </tr>
  51.         </table>";
  52.         echo $message;

 

Powered by ExBB FM 1.0 RC1