Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как скрыть форму
 
 автор: Neolink   (08.01.2008 в 03:15)   письмо автору
 
 

Доброго времени суток, не нашел раздела для новичков поэтому сразц пардон еслине туда.
Задача такая есть собственна сама форма

$form="
<form action=\"[~[*id*]~]\" method=\"post\">
<ul>
    <li>
        Телефон<input type=\"text\" name=\"telefon\" value=\"\"/>
    </li>
    <li>
        Имя<input type=\"text\" name=\"kontakt\" value=\"\"/>
    </li>
    <li>
        Почта<input type=\"text\" name=\"email\" value=\"\"/>
    </li>
    <li>
        Стоимость<input type=\"text\" name=\"cena\" value=\"\"/>
    </li>
    <li>
        Улица<input type=\"text\" name=\"ulica\" value=\"\"/>
    </li>
    <li>
        Этаж<input type=\"text\" name=\"etaj\" value=\"\"/>
    </li>
    <li>
        Этажность<input type=\"text\" name=\"etajnost\" value=\"\"/>
    </li>
    <li>
        Наличие телефона<input type=\"text\" name=\"nal_telefona\" value=\"\"/>
    </li>
    <li>
        Общая площадь<input type=\"text\" name=\"obschayapl\" value=\"\"/>
    </li>
    <li>
        Площадь комнат<input type=\"text\" name=\"plkomnat\" value=\"\"/>
    </li>
    <li>
        Состояние<input type=\"text\" name=\"sostoyanie\" value=\"\"/>
    </li>
    <li>
        Примечание<input type=\"text\" name=\"primechanie\" value=\"\"/>
    </li>
        <li>
                <input type=\"submit\" value=\"Разместить\"/>
        </li>
</ul>
</form>";


Есть код обрабатываюищий эту форму


@mysql_connect("localhost","root") or die("Не могу соединиться с мускулом");
@mysql_select_db("modx_1") or die("Не могу найти базу данных");


$telefon = $_POST["telefon"];
$kontakt = $_POST["kontakt"];
$email = $_POST["email"];
$cena = $_POST["cena"];
$ulica = $_POST["ulica"];
$etaj = $_POST["etaj"];
$etajnost = $_POST["etajnost"];
$nal_telefona = $_POST["nal_telefona"];
$obschayapl = $_POST["obschayapl"];
$plkomnat = $_POST["plkomnat"];
$sostoyanie = $_POST["sostoyanie"];
$primechanie = $_POST["primechanie"];


mysql_query("INSERT INTO prodat VALUES ('$telefon','$kontakt','$email','$cena','$ulica','$etaj','$etajnost','$nal_telefona','$obschayapl','$plkomnat','$sostoyanie','$primechanie')");

mysql_close();





И все это как вы уже догадались на одной странице...
Задача вобщем-топростая но не для меня...
Вобщем сделал следующим образом:



<?php

[i]//Тут выше приведенная форма со всавленным во внутрь контейнера form ниже приведенным тегом[/i]

<input type=\"hidden\" name=\"seenform\" value=\"y\"/>


if(
$seenform != "y")
{
print 
$form;
}
else
{

//А здесь выше приведенный код

}

?>


По идее должно работать. А у меня все равно после заполнения формы и нажатии на кнопку выводиться та же самая форма имало того еще и не отсылаеться в базу данных введенная информация. Не подскажите в чем тут может быть дело. Приводу код целиком:


<?php
$prodat_path 
'http://www.modx/assets/snippets/real_estate/prodat/vvod.php';

//This is the form for the entering of informations about saling place

$form="
<form action=\"[~[*id*]~]\" method=\"post\">
<input type=\"hidden\" name=\"seenform\" value=\"y\"/>
<ul>
    <li>
        Телефон<input type=\"text\" name=\"telefon\" value=\"\"/>
    </li>
    <li>
        Имя<input type=\"text\" name=\"kontakt\" value=\"\"/>
    </li>
    <li>
        Почта<input type=\"text\" name=\"email\" value=\"\"/>
    </li>
    <li>
        Стоимость<input type=\"text\" name=\"cena\" value=\"\"/>
    </li>
    <li>
        Улица<input type=\"text\" name=\"ulica\" value=\"\"/>
    </li>
    <li>
        Этаж<input type=\"text\" name=\"etaj\" value=\"\"/>
    </li>
    <li>
        Этажность<input type=\"text\" name=\"etajnost\" value=\"\"/>
    </li>
    <li>
        Наличие телефона<input type=\"text\" name=\"nal_telefona\" value=\"\"/>
    </li>
    <li>
        Общая площадь<input type=\"text\" name=\"obschayapl\" value=\"\"/>
    </li>
    <li>
        Площадь комнат<input type=\"text\" name=\"plkomnat\" value=\"\"/>
    </li>
    <li>
        Состояние<input type=\"text\" name=\"sostoyanie\" value=\"\"/>
    </li>
    <li>
        Примечание<input type=\"text\" name=\"primechanie\" value=\"\"/>
    </li>
        <li>
                <input type=\"submit\" value=\"Разместить\"/>
        </li>
</ul>
</form>"
;





//Varifyfication the form was showing

if($seenform != "y")
{
print 
$form;
}
else
{


//Connecting with mysql server


@mysql_connect("localhost","root") or die("Не могу соединиться с мускулом");
@
mysql_select_db("modx_1") or die("Не могу найти базу данных");


$telefon $_POST["telefon"];
$kontakt $_POST["kontakt"];
$email $_POST["email"];
$cena $_POST["cena"];
$ulica $_POST["ulica"];
$etaj $_POST["etaj"];
$etajnost $_POST["etajnost"];
$nal_telefona $_POST["nal_telefona"];
$obschayapl $_POST["obschayapl"];
$plkomnat $_POST["plkomnat"];
$sostoyanie $_POST["sostoyanie"];
$primechanie $_POST["primechanie"];


mysql_query("INSERT INTO prodat VALUES ('$telefon','$kontakt','$email','$cena','$ulica','$etaj','$etajnost','$nal_telefona','$obschayapl','$plkomnat','$sostoyanie','$primechanie')");

mysql_close();

}
?>


Спасибо.

   
 
 автор: skor   (08.01.2008 в 03:27)   письмо автору
 
   для: Neolink   (08.01.2008 в 03:15)
 

было бы щас не пол четвертого я бы может ответил ))
но мне лень читать самый большой пост в истории форума ))
сорри за офтоп ))

   
 
 автор: White_Owl   (08.01.2008 в 03:37)   письмо автору
 
   для: Neolink   (08.01.2008 в 03:15)
 

что хоть пишет при соединении с mysql ?

   
 
 автор: Neolink   (08.01.2008 в 03:42)   письмо автору
 
   для: White_Owl   (08.01.2008 в 03:37)
 

Соединяется все норамально. Косяк в том что после отправки инфы в БД else{} не врубается почему-то, врубает обять if{}. Может в синтаксисе косяк?

   
 
 автор: White_Owl   (08.01.2008 в 04:27)   письмо автору
 
   для: Neolink   (08.01.2008 в 03:15)
 

Попробуйте попроверять такими способами (при этом назначив кнопке имя ok)


if (isset($_POST['ok']))
{
$telefon = $_POST['telefon']; 
$kontakt = $_POST['kontakt']; 
$email = $_POST['email']; 
$cena = $_POST['cena']; 
$ulica = $_POST['ulica']; 
$etaj = $_POST['etaj']; 
$etajnost = $_POST['etajnost']; 
$nal_telefona = $_POST['nal_telefona']; 
$obschayapl = $_POST['obschayapl']; 
$plkomnat = $_POST['plkomnat']; 
$sostoyanie = $_POST['sostoyanie']; 
$primechanie = $_POST['primechanie']; 
}
else{
    
    echo "Ничего не отправилось";
}


И после


mysql_query("INSERT INTO prodat VALUES ('$telefon','$kontakt','$email','$cena','$ulica','$etaj','$etajnost','$nal_telefona','$obschayapl','$plkomnat','$sostoyanie','$primechanie')");


вставьте на всякий случай


echo mysql_error();


Сообщите о результатах :)

И в дальнейшем по возможности не экранируйте кавычки а заменяйте их на ' на мой взгляд так намного легче.

   
 
 автор: Neolink   (08.01.2008 в 04:43)   письмо автору
 
   для: White_Owl   (08.01.2008 в 04:27)
 

Ничего нового :( Результат все тот же: после нажатия на кнопку снова отображаеться "if{...}", а "else{...}" отдыхает. Следовательно отсюда и снова отображаеться эта самая форма, а данные ни куда не пересылаються.

   
 
 автор: sim5   (08.01.2008 в 04:54)   письмо автору
 
   для: Neolink   (08.01.2008 в 04:43)
 

Что это у вас такое $seenform, по которому вы проверяете печатать вам или нет форму? Почему это вы поля формы проверяете как $_POST['namefield'], а это поле почему-то как $seenform? Нотайсы включите на всякий случай, авось поможет.

   
 
 автор: White_Owl   (08.01.2008 в 05:03)   письмо автору
 
   для: Neolink   (08.01.2008 в 04:43)
 

у меня при запуске скрипта выдаёт предупреждение

Notice: Undefined variable: seenform in z:\home\forum\www\proba.php on line 58

Так что проблема скорее всего в ней и что это за экшн такой ? action=\"[~[*id*]~]\" куда он направляет ?

   
 
 автор: TXC   (08.01.2008 в 06:21)   письмо автору
 
   для: White_Owl   (08.01.2008 в 05:03)
 

Ваш action, собственно вот эта часть [~[*id*]~] наверняка подменяется регулярным выражением. Но вы не привели код обработчика с регуляркой, потому врядли Вам смогут ответить без него.

   
 
 автор: Neolink   (08.01.2008 в 17:05)   письмо автору
 
   для: TXC   (08.01.2008 в 06:21)
 

"[~[*id*]~]" - это кусок кода который заменяеться в движке сайта и направляет на эту же страницу. Косяк не в этом еще раз повторяю, что ошибка где-то в использовании if{} так как else{} совершенно не работает и использовании скрытой формы (кстати там я в той форме опечатался не экранизировал один слеш, если кто будет запускать учтите это). Это проверенно, я колдовал с разными ситуациями к примеру вообще уберал это условие и форма нормально передавала все данные в БД. Но мне надо что бы после нажатия она не только передавала инфу но ещё и скрывалась. Спасибо за ответы.

   
 
 автор: Neolink   (08.01.2008 в 17:15)   письмо автору
 
   для: Neolink   (08.01.2008 в 03:15)
 

Всем спасибо разобрался на конец. Подтолкнул на это один из выше написанных топиков.
Необходимо было дописать перед if{} следующую строку

$seenform = $_POST['seenform']

   
 
 автор: mihdan   (09.01.2008 в 10:31)   письмо автору
 
   для: Neolink   (08.01.2008 в 17:15)
 

Вам же выше об этом написали

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования