X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Объединение переменных
werd_34
werd_34
Topic Starter сообщение 13.4.2013, 1:27; Ответить: werd_34
Сообщение #1


Доброго времени суток!
Скажите, есть ли возможность объединить значения 2 переменных в одну для передачи в ДБ (число формата 02.06)

session_start();
$m = array (01 => '01', 02 => '02', 03 => '03', 04 => '04',
                   05 => '05',  06 => '06', 07 => '07', 08 => '08',
                   09 => '09', 10 => '10',  11 => '11', 12 => '12');
$d = array (01 => '01.', 02 => '02.', 03 => '03.', 04 => '04.',
                  05 => '05.', 06 => '06.', 07 => '07.', 08 => '08.',
                  09 => '09.', 10 => '10.', 11 => '11.', 12 => '12.',
                  13 => '13.', 14 => '14.', 15 => '15.', 16 => '16.',
                  17 => '17.', 18 => '18.', 19 => '19.', 20 => '20.',
                   21 => '21.', 22 => '22.', 23 => '23.', 24 => '24.',
                   25 => '25.', 26 => '26.', 27 => '27.', 28 => '28.',
                   29 => '29.', 30 => '30.', 31 => '31');


<?php
echo '<select name="d">';
foreach ($d as $key => $val) {
    echo '<option value="'.$key.'">'.$val; }
    echo '</option></select>';
    
echo '<select name="m">';
foreach ($m as $key => $value) {
    echo    '<option value="'.$key.'">'.$value; }
    echo '</option></select>';
?>

Форму на страницу я вывел, а значения - выводятся, но не передаются в переменные. Хотелось бы общее значение (02.06) передать в одной переменной

<td>Дата события(день, месяц): </td><td><input type="text" name="day" class="date_input" value="<?php echo htmlspecialchars ($_SESSION['day']); ?>" /></td>

Есть ли такая возможность? Подскажите, пожалуйста.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
fedornabilkin
fedornabilkin
сообщение 13.4.2013, 1:48; Ответить: fedornabilkin
Сообщение #2


Вопрос конкретно поставь, что должно быть.
А то не совсем ясно.
А код вообще-то нужно оптимизировать, например так:
<?php
function get_select($count){
  for($i=0; $i<$count; $i++){
   if($i<10)
    $k = "0".$i;
   else
    $k = $i;
   $html .= '<option value="'.$k.'">'.$k.'</option>';
  }
  return $html;
}

$html = '
  <select name="d">
  '.get_select(31).'
  </select>
';
      
$html .= '
  <select name="m">';
  '.get_select(12).'
  </select>
';

echo $html;

?>
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
html-ka
html-ka
сообщение 13.4.2013, 2:48; Ответить: html-ka
Сообщение #3


и как обычно дамп данных не делал, чтоб найти ошибку
точка в массива даты не нужна :) у меня твой код работает, не знаю что у тебя в целом, набросал на коленке:
<form>
    <?php
    if (isset($_GET['submit'])) {
    $date = intval($_GET['d']).".".intval($_GET['d']);  
    echo "<p>Событие произошло: ".$date."</p>";
    }
    echo '<select name="d">';
foreach ($d as $key => $val) {
    echo '<option value="'.$key.'">'.$val; }
    echo '</option></select>';
      
echo '<select name="m">';
foreach ($m as $key => $value) {
    echo    '<option value="'.$key.'">'.$value; }
    echo '</option></select>';
?>
    <input type="submit" value="отправить" name="submit" />
</form>
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
werd_34
werd_34
Topic Starter сообщение 15.4.2013, 0:35; Ответить: werd_34
Сообщение #4


Огромное спасибо fedornabilkin, формы с днём и месяцем выводятся отлично. Немного изменил значения для своих нужд (день, месяц).

function get_select($count){
  for($i=1; $i<$count; $i++){
   if($i<10)
        $k = "0".$i;
   else
        $k = $i;
   $html .= '<option value="'.$k.'">'.$k.'</option>';
  }
  return $html;
}
$html = '
  <select name="d">
  '.get_select(32).'
  </select>
';
$html .= '
  <select name="m">;
  '.get_select(13).'
  </select>
';
echo $html;

Но!!!! Ребята, простите мне мою тупость, я не могу эти значения передать в базу (мой код):

<td>Дата события(день, месяц): </td><td><input type="text" name="day" class="date_input" value="<?php echo htmlspecialchars ($_SESSION['day']); ?>" /></td>

Как мне приравнять мою $_SESSION['day'] к выводимой на экран $html????
P.S. Спасибо, html-ka, но твой вариант не работает.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
html-ka
html-ka
сообщение 15.4.2013, 6:12; Ответить: html-ka
Сообщение #5


все работает
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
fedornabilkin
fedornabilkin
сообщение 15.4.2013, 12:28; Ответить: fedornabilkin
Сообщение #6


ТС, ну как же так? Конкретно пожалуйста. Есть это, надо это, делаю так.
Откуда вообще сессии вылезли? Все, что передается в переменные, это происходит в пхп-скрипте.
На странице только отображается сформированный код.
Поэтому еще разок, откуда и что попадает в сессию (зачем?)?
Где это надо вывести/отобразить?
И каким боком тут образовалась база данных?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
werd_34
werd_34
Topic Starter сообщение 15.4.2013, 13:54; Ответить: werd_34
Сообщение #7


Вот такой код

<?php
session_start();
require "connect.php";
require "ayth.php";
function get_select($count){
  for($i=1; $i<$count; $i++){
   if($i<10)
        $k = "0".$i;
   else
        $k = $i;
   $html .= '<option value="'.$k.'">'.$k.'</option>';
  }
  return $html;
}
$html = '
  <select name="d">
  '.get_select(32).'
  </select>
';
$html .= '
  <select name="m">;
  '.get_select(13).'
  </select>
';

?>
<!---HTML код--->
<table>
    <form enctype="multipart/form-data" method="post" action="add_event.php">
    <tr>
       <td>Дата события(день, месяц): </td>
      <td><?php echo $html;?></td>
      <td><input type="text" name="day" class="date_input" value="<?php echo htmlspecialchars ($_SESSION['day']); ?>" /></td>
        </tr>
        <tr>
            <td colspan="2">
            <? php
            echo $_SESSION['res'];
            unset($_SESSION['res']);
            unset($_SESSION['day']);
            ?>
            </td>
        </tr>
    </form>
</table>
<!---HTML код--->

Открывается сессия, подключаю соединение с базой данных, на этой странице должен ввести день, месяц. Эти данные отправляются в обработчик add_event.php, и если значения записаны (не записаны) в БД, сообщение выводится на странице.
Так вот я не могу передать эти выбранные значения (например 02.04)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
fedornabilkin
fedornabilkin
сообщение 15.4.2013, 15:22; Ответить: fedornabilkin
Сообщение #8


Я понял. Но скорее всего ты их принять не можешь.
И все потому, что ты их не принимаешь.
Ты ведь генерируешь форму, выводишь ее на страницу. Потом выбираешь необходимые значения.
Нажимаешь... Вот косяк. Сделай кнопку для отправки твоей формы.
Данные после нажатия отправятся на твой add_event.php и там уже обрабатывай пост-запрос.
Думаю известно, что переданные данный надо искать в массиве $_POST
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
html-ka
html-ka
сообщение 15.4.2013, 17:20; Ответить: html-ka
Сообщение #9


ну так ты же $_SESSION ничего не присваиваешь, отчего она должна отображаться и как обычно отладку не сделал, например print_r($_SESSION);
а как склеивать данные я показал в своем коде выше, называется конкатенация, учи матчасть :)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
werd_34
werd_34
Topic Starter сообщение 15.4.2013, 17:53; Ответить: werd_34
Сообщение #10


Вот так работает. Есть ли ошибки?

<?php
session_start();
require "connect.php";
require "ayth.php";
function get_select($count){
    $html = '';
for( $i = 1; $i <= $count; $i++){
     if($i<10)
  $k = "0".$i;
else $k = $i;
$html .= '<option value="'.$k.'">'.$k.'</option>';
}
return $html;
}
?>
<!---HTML код--->
<form method="POST" action="">
<?php
if (isset($_REQUEST['send_date'])){
    // Пишем в сессию данные
$_SESSION['day'] = trim($_REQUEST['day']). '.' .trim($_REQUEST['month']);
?>
<hr>Выбранная дата события:<?php echo trim( $_REQUEST['day'] ) . '.' . trim( $_REQUEST['month'] );?><hr>
    <?php
    }
    ?>
<table border="0"  id="table1">
     <tr>
          <td>день</td>
         <td>месяц</td>
    </tr>
    <tr  align="left">
         <td align="left"><select name="day"><?php echo get_select(31); ?></select></td>
         <td align="left"><select name="month"><?php echo get_select(12); ?></select></td>
         <td><input type="submit" name="send_date" value="Отправить дату"></td>
        </tr>
</table>
</form>
<?php
echo $_SESSION['res'];
unset($_SESSION['res']);
unset($_SESSION['day']);
?>
<!---HTML код--->

Спасибо всем за помощь!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


 



RSS Текстовая версия Сейчас: 28.3.2024, 15:11
Дизайн