Перейти к содержимому

Сервис обмена электронных валют

Партнерская программа Kredov

Объединение переменных

#1 werd_34

werd_34
  • Пользователь
  • 34 сообщений
  • Репутация: 0
-1

Отправлено 13 Апрель 2013 - 00:27

Доброго времени суток!
Скажите, есть ли возможность объединить значения 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

#2 fedornabilkin

fedornabilkin
  • Пользователь
  • 696 сообщений
  • Репутация: 91

Отправлено 13 Апрель 2013 - 00:48

Вопрос конкретно поставь, что должно быть.
А то не совсем ясно.
А код вообще-то нужно оптимизировать, например так:
<?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;

?>

  • 1
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.


#3 html-ka

html-ka
  • Пользователь
  • 455 сообщений
  • Репутация: 82

Отправлено 13 Апрель 2013 - 01:48

и как обычно дамп данных не делал, чтоб найти ошибку
точка в массива даты не нужна :) у меня твой код работает, не знаю что у тебя в целом, набросал на коленке:
<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>

  • 0

#4 werd_34

werd_34
    Topic Starter
  • Пользователь
  • 34 сообщений
  • Репутация: 0

Отправлено 14 Апрель 2013 - 23:35

Огромное спасибо 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, но твой вариант не работает.
  • 0

#5 html-ka

html-ka
  • Пользователь
  • 455 сообщений
  • Репутация: 82

Отправлено 15 Апрель 2013 - 05:12

все работает
  • 0

#6 fedornabilkin

fedornabilkin
  • Пользователь
  • 696 сообщений
  • Репутация: 91

Отправлено 15 Апрель 2013 - 11:28

ТС, ну как же так? Конкретно пожалуйста. Есть это, надо это, делаю так.
Откуда вообще сессии вылезли? Все, что передается в переменные, это происходит в пхп-скрипте.
На странице только отображается сформированный код.
Поэтому еще разок, откуда и что попадает в сессию (зачем?)?
Где это надо вывести/отобразить?
И каким боком тут образовалась база данных?
  • 0
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.


#7 werd_34

werd_34
    Topic Starter
  • Пользователь
  • 34 сообщений
  • Репутация: 0

Отправлено 15 Апрель 2013 - 12:54

Вот такой код

<?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)
  • 0

#8 fedornabilkin

fedornabilkin
  • Пользователь
  • 696 сообщений
  • Репутация: 91

Отправлено 15 Апрель 2013 - 14:22

Я понял. Но скорее всего ты их принять не можешь.
И все потому, что ты их не принимаешь.
Ты ведь генерируешь форму, выводишь ее на страницу. Потом выбираешь необходимые значения.
Нажимаешь... Вот косяк. Сделай кнопку для отправки твоей формы.
Данные после нажатия отправятся на твой add_event.php и там уже обрабатывай пост-запрос.
Думаю известно, что переданные данный надо искать в массиве $_POST
  • 0
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.


#9 html-ka

html-ka
  • Пользователь
  • 455 сообщений
  • Репутация: 82

Отправлено 15 Апрель 2013 - 16:20

ну так ты же $_SESSION ничего не присваиваешь, отчего она должна отображаться и как обычно отладку не сделал, например print_r($_SESSION);
а как склеивать данные я показал в своем коде выше, называется конкатенация, учи матчасть :)
  • 0

#10 werd_34

werd_34
    Topic Starter
  • Пользователь
  • 34 сообщений
  • Репутация: 0

Отправлено 15 Апрель 2013 - 16:53

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

<?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 код--->
Спасибо всем за помощь!
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru