Запись Cookie после вывода....

painbot

Ежик в тумане
Добрый день! Есть скрипт который выводит данные из базы данных в два выпадающих списка:

страна-> город

после выбора страны подгружается список с городами этой страны!
после выбора города идет запрос к базе данных и возвращается данные относящиеся именно к этому городу
переменная $city - это происходит все в одном файле, интересует запись в cookie именно после выбора из списка городов тоесть как записать переменную $city в скрипте в котором уже происходит вывод...
вот кусок:



PHP:
function is_sel($a, $field)
{
  $b = isset($_POST[$field])?$_POST[$field]:NULL;
  if($a == $b) return 'selected="selected"';
}

$res = mysql_query('SELECT * FROM '.db_prefix.'country');
?>
<form id="frm" method="post">
<select name="country" onchange="document.getElementById('frm').submit()" >

<option value='null'>- Выберите регион -</option>
<?
/*Пишем в цикле выпадающий список из регионов */
    while($row = mysql_fetch_array($res))
      echo "<option ".is_sel($row['id'],'country')." value='" . $row['id'] . "'>" . $row['name'] . "</option>\r\n";
echo "</select>";

if(isset($_POST['country']))
{
  $res=mysql_query('SELECT * FROM '.db_prefix.'city WHERE area="'.(int)$_POST['country'].'"');

  echo "<select id=\"city\" name=\"city\" onchange=\"document.getElementById('frm').submit()\" >
    <option  value='0'>- Выберите город -</option>";
/*Теперь города*/
    while($row = mysql_fetch_array($res))
      echo "<option ".is_sel($row['id'],'city')." value='" . $row['id'] . "'>" . $row['name'] . "</option>\r\n";

  echo "</select>";
}

echo '</form>';




$city = isset($_POST['city'])?$_POST['city']:NULL;

if($city && $city !== 0)
{
  $res=mysql_query('SELECT * FROM '.db_prefix.'phone WHERE id='.(int)$_POST['city'].' LIMIT 1');
  $row = mysql_fetch_array($res);
/*Печать адреса*/ 
 echo " ".$row['name']."<br /><br /><br />";
 

painbot

Ежик в тумане
Спасиб, s@nch0)) очень полезны иностранные материалы)) в разы не в пример русским ресурсам, разобрался сам...
 

painbot

Ежик в тумане
Все таки появился еще вопрос)

теперь этот скрипт , необходимо выводить в статичных html файлах
<head>
</head>
<body>
<? include 'script.php' ?>
</body>

соответственно печеньки не работают(( как быть?
 

s@nch0

Хочу всё знать
Во-первых, я бы инклудил PHP скрипт вот так:

<?php "твой код" ?>

Потому как если в настройках PHP будет отключена опция "short_open_tag", поимеешь проблемы.

Ну а по поводу вопроса - покажи код. Будем разбираться. :)
 

painbot

Ежик в тумане
Гы гы))) опять помогла все та же документация)))
PHP:
<?php 
ob_start(); 
?>
<head>
</head>
<body>

<?php include 'script.php' ?>
</body>
<?php 
ob_end_flush();
?>
проверил PHP на серваке надстройка работает так что думаю пока все гуд) спасибо за соучастие)
 

Absinthe

жожо
Потому как если в настройках PHP будет отключена
Всегда можно включить. Код будет проще читаться.

Далее, не стоит путать отображение и логику. Код станет сильно понятнее. Гуглить слово "шаблонизатор".
 

С.

Продвинутый новичок
Во-первых, я бы инклудил PHP скрипт вот так:

<?php "твой код" ?>

Потому как если в настройках PHP будет отключена опция "short_open_tag", поимеешь проблемы.
Предлагаю такие реплики вычищать нещадно!
 

s@nch0

Хочу всё знать
Бла-бла-бла.
Во-первых, про "вычищать" - свою ремарку я имел в виду в рамках того, как пишет ТС. Судя по его коду, он не знает, что такое шаблонизатор. А учить его - не моя задача. Был вопрос, был ответ в рамках данного вопроса и реализации, которую использует ТС. А блестать навыками - это не тот раздел, где это нужно имхо.

Во вторых, по поводу "всегда можно включить" - включить не всегда можно. Потому что скрипты мы не всегда пишем чисто для себя и на своём серваке, к которому есть рут доступ. Не говоря уже про всякие говно-хостинги, на которых хотят сэкономить клиенты.
Писать нужно так, что поиметь меньше проблем. Хотя бы при возможном будущем переезде с хостинга, где эта опция включена на хостинг, где она выключена.

Знатоки блин. Лишь бы 5 копеек вставить.
 
Сверху