|
|
|
| Доброго времени суток, не нашел раздела для новичков поэтому сразц пардон еслине туда.
Задача такая есть собственна сама форма
$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();
}
?>
|
Спасибо. | |
|
|
|
|
|
|
|
для: Neolink
(08.01.2008 в 03:15)
| | было бы щас не пол четвертого я бы может ответил ))
но мне лень читать самый большой пост в истории форума ))
сорри за офтоп )) | |
|
|
|
|
|
|
|
для: Neolink
(08.01.2008 в 03:15)
| | что хоть пишет при соединении с mysql ? | |
|
|
|
|
|
|
|
для: White_Owl
(08.01.2008 в 03:37)
| | Соединяется все норамально. Косяк в том что после отправки инфы в БД else{} не врубается почему-то, врубает обять if{}. Может в синтаксисе косяк? | |
|
|
|
|
|
|
|
для: 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')");
|
вставьте на всякий случай
Сообщите о результатах :)
И в дальнейшем по возможности не экранируйте кавычки а заменяйте их на ' на мой взгляд так намного легче. | |
|
|
|
|
|
|
|
для: White_Owl
(08.01.2008 в 04:27)
| | Ничего нового :( Результат все тот же: после нажатия на кнопку снова отображаеться "if{...}", а "else{...}" отдыхает. Следовательно отсюда и снова отображаеться эта самая форма, а данные ни куда не пересылаються. | |
|
|
|
|
|
|
|
для: Neolink
(08.01.2008 в 04:43)
| | Что это у вас такое $seenform, по которому вы проверяете печатать вам или нет форму? Почему это вы поля формы проверяете как $_POST['namefield'], а это поле почему-то как $seenform? Нотайсы включите на всякий случай, авось поможет. | |
|
|
|
|
|
|
|
для: Neolink
(08.01.2008 в 04:43)
| | у меня при запуске скрипта выдаёт предупреждение
Notice: Undefined variable: seenform in z:\home\forum\www\proba.php on line 58
Так что проблема скорее всего в ней и что это за экшн такой ? action=\"[~[*id*]~]\" куда он направляет ? | |
|
|
|
|
|
|
|
для: White_Owl
(08.01.2008 в 05:03)
| | Ваш action, собственно вот эта часть [~[*id*]~] наверняка подменяется регулярным выражением. Но вы не привели код обработчика с регуляркой, потому врядли Вам смогут ответить без него. | |
|
|
|
|
|
|
|
для: TXC
(08.01.2008 в 06:21)
| | "[~[*id*]~]" - это кусок кода который заменяеться в движке сайта и направляет на эту же страницу. Косяк не в этом еще раз повторяю, что ошибка где-то в использовании if{} так как else{} совершенно не работает и использовании скрытой формы (кстати там я в той форме опечатался не экранизировал один слеш, если кто будет запускать учтите это). Это проверенно, я колдовал с разными ситуациями к примеру вообще уберал это условие и форма нормально передавала все данные в БД. Но мне надо что бы после нажатия она не только передавала инфу но ещё и скрывалась. Спасибо за ответы. | |
|
|
|
|
|
|
|
для: Neolink
(08.01.2008 в 03:15)
| | Всем спасибо разобрался на конец. Подтолкнул на это один из выше написанных топиков.
Необходимо было дописать перед if{} следующую строку
$seenform = $_POST['seenform']
|
| |
|
|
|
|
|
|
|
для: Neolink
(08.01.2008 в 17:15)
| | Вам же выше об этом написали | |
|
|
|