Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2015, 01:37   #11
Dina_93
Новичок
Джуниор
 
Регистрация: 16.04.2015
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Форма – form.html:
Код HTML:
<form method="post" action="form.php">
<input id="search_hotel_city" type="text" name="city" placeholder="Введите город">   
<input id="hotel_data_1" type="text" name="hotel_data_1" class="tcal" placeholder="мм.дд.гг">   
<input id="hotel_data_2" type="text" name="hotel_data_2" class="tcal" placeholder="мм.дд.гг">  
</form>
Обработчик формы – form.php:
PHP код:
if (isset($_GET['hotel_search'])) {
    
$messages_search = array();
    
    if (empty(
$_GET['city'])) {
        
$messages_search[] = 'Введите город;';
    }
    if (empty(
$_GET['hotel_data_1'])) {
        
$messages_search[] = 'Введите дату заезда;';
    }
    if (empty(
$_GET['hotel_data_2'])) {
        
$messages_search[] = 'Введите дату отъезда;';
    }

    if (!empty(
$messages_search)) {
        echo 
implode('<br/>'$messages_search); // ошибки заполнения формы
    
}
    else{
        
$g db_connect();
        
$g1 $g->prepare('SELECT * FROM mydb.hotel WHERE city=? LIMIT 5');
        
$g1->execute(array($_GET['city']));

        
$hotel_res = array();

        foreach (
$g1->fetchAll() as $g2) {
            
$hotel_res[] = array(
                
'hotel_name' => $g2['hotel_name'],
                
'city' => $g2['city'],           
            );
        }

        include 
'form_results_tpl.php'// подключаем шаблон для вывода результатов
    
}

Шаблон для вывода результатов поиска – form_results_tpl.php:
PHP код:
<?php if (isset($hotel_res)): ?>
                <?php if (count($hotel_res)): ?>
                    <?php foreach ($hotel_res as $h_r): ?>

<h1><?php echo htmlspecialchars($h_r['hotel_name']) ?></h1>
<h2><?php echo ' ' htmlspecialchars($h_r['city']) ?></h2>

                   <?php endforeach; ?>
              <?php endif; ?>
<?php 
endif; ?>
Вы немного не поняли почему у меня так файлы разделены, файл1 это главная страница сайта, файл2 это страница где выводится, после заполнения полей поиска на главной странице, результаты поиска. И следовательно :

Есть файл1.php который проверяет заполнение полей в форме поиска

PHP код:

$messages_search 
= array();

if (isset(
$_GET['hotel_search'])) {
    if (empty(
$_GET['city'])) {
        
$messages_search[] = 'Введите город;';
    }
    if (empty(
$_GET['hotel_data_1'])) {
        
$messages_search[] = 'Введите дату заезда;';
    }
    if (empty(
$_GET['hotel_data_2'])) {
        
$messages_search[] = 'Введите дату отъезда;';
    }
    if (!
$messages_search) {
        
header("Location: http://$_SERVER[HTTP_HOST]/result_hotel");
        die;
    }
}  

require 
implode(DIRECTORY_SEPARATOR, array('page''file1.phtml')); 
Есть файл1.phtml - главная страница сайт, на которой есть форма поиска, и после заполнения полей поиска она меня перекидывает на файл 2.php который в своб очередь перекидывает меня на файл2.phtml вот так :

PHP код:

require implode(DIRECTORY_SEPARATOR, array('page''file2.phtml')); 
Еще раз напишу код файл2.php - он подготавливает что надо выводить с цчетом того что пользователь ввел в поиск

PHP код:

$city_name 
= @$_GET['city'];

if (
$city_name) {
    
$g db_connect();
    
$g1 $g->prepare('SELECT * FROM mydb.hotel WHERE city=? LIMIT 5');
    
$g1->execute();

    
$hotel_res = array();

    foreach (
$g1->fetchAll() as $g2) {
        
$hotel_res[] = array(
            
'hotel_name' => $g2['hotel_name'],
            
'city' => $g2['city'],           
        );
    }

файл2.phtml - тут все и показывается пользователю

Код HTML:
<?php if (isset($hotel_res)): ?>
                <?php if (count($hotel_res)): ?>
                    <?php foreach ($hotel_res as $h_r): ?>

<h1><?php echo htmlspecialchars($h_r['hotel_name']) ?></h1>
<h2><?php echo ' ' . htmlspecialchars($h_r['city']) ?></h2>

                   <?php endforeach ?>
              <?php endif ?>
<?php endif ?>

Мне надо ничего не перенося из кода, из одного файла в другой, как то взять из файла файл1.php город который ввел пользователь в форму поиска, и использовать этот город в файле файл2.php. Я именно не знаю как это сделать.

Я примерно понимаю что в файле файл1.php надо добавить следующее :

PHP код:

$city_hotel 
= @$_GET['city']; 
И будет вот так :
PHP код:
$messages_search = array();

if (isset(
$_GET['hotel_search'])) {
    if (empty(
$_GET['search_hotel_city'])) {
        
$messages_search[] = 'Введите город;';
    }
    if (empty(
$_GET['hotel_data_1'])) {
        
$messages_search[] = 'Введите дату заезда;';
    }
    if (empty(
$_GET['hotel_data_2'])) {
        
$messages_search[] = 'Введите дату отъезда;';
    }
    if (!
$messages_search) {
        
header("Location: http://$_SERVER[HTTP_HOST]/result_hotel");
        die;
    }
    
    
$city_hotel = @$_GET['city'];
}

require 
implode(DIRECTORY_SEPARATOR, array('page''content.phtml')); 
Но как мне сделать так чтобы я смог эту переменую использовать в файл2.php, как сделать ее глобальной? Меня вот какой вопро сволнует.

Последний раз редактировалось Dina_93; 17.04.2015 в 01:39.
Dina_93 вне форума Ответить с цитированием
Старый 17.04.2015, 01:52   #12
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Да уж...
Ездить удобнее на велосипеде с круглыми колесами – но вот вам подавай велик с квадратными, и всё тут.
Честно говоря, нет особого желания переубеждать – но я б за такой ..овнокод увольнял/ставил_двойку_незачет и т.д.
Цитата:
Сообщение от Dina_93 Посмотреть сообщение
Мне надо ничего не перенося из кода, из одного файла в другой, как то взять из файла файл1.php город который ввел пользователь в форму поиска, и использовать этот город в файле файл2.php. Я именно не знаю как это сделать.
Да чего уж проще – передайте город в адресной строке, методом $_GET:
PHP код:
header("Location: http://$_SERVER[HTTP_HOST]/result_hotel?city=" $_GET['city']); 
Но это глупость – гонять переменные из формы по нескольким скриптам.
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
переменная linkoln_7 JavaScript, Ajax 1 03.02.2015 13:31
php Переменная опустошается sir.andrey Помощь студентам 1 19.11.2012 16:06
Не отображается переменная Nikita090 JavaScript, Ajax 8 30.12.2011 19:54
переменная vefer Microsoft Office Word 5 14.11.2011 20:11
Переменная в C# bead C# (си шарп) 8 01.05.2011 12:32