За последние 24 часа нас посетили 17498 программистов и 1623 робота. Сейчас ищут 1917 программистов ...

помогите разобраться с оформлением тега формы...

Тема в разделе "HTML и CSS", создана пользователем wertel, 25 апр 2010.

  1. wertel

    wertel Активный пользователь

    С нами с:
    22 апр 2010
    Сообщения:
    46
    Симпатии:
    0
    Я по примеру создал форму, но когда начал создавать TEXT FIELD у меня в дримвире 8 не оказалось строчки ID, я его дописал: БЫЛО <input type="text" name="textfield" /> , а после дописания стало - <input type="text" name="textfield" id="title" />. После я стал писать РНР - обработчик и у меня не получается реализовать занос данных в базу... ошибок нет вроде, че то с этими ID-шками. помогите.... вот скрипт обработчика:::

    <?php
    include ('block/bd.php');

    if (isset($_POST['title'])) {$title = $_POST['title']; if ($title == '') {unset($title); }}/*проверяем поля на пустоту, значение unset уничтожает переменную если у нее пустота в ''*/
    if (isset($_POST['meta_d'])) {$meta_d = $_POST['meta_d']; if ($meta_d == '') {unset($meta_d); }}
    if (isset($_POST['meta_k'])) {$meta_k = $_POST['meta_k']; if ($meta_k == '') {unset($meta_k); }}
    if (isset($_POST['date'])) {$date = $_POST['date']; if ($date == '') {unset($date); }}
    if (isset($_POST['discrip'])) {$discrip = $_POST['discrip']; if ($discrip == '') {unset($discrip); }}
    if (isset($_POST['text'])) {$text = $_POST['text']; if ($text == '') {unset($text); }}
    if (isset($_POST['author'])) {$author = $_POST['author']; if ($author == '') {unset($author); }}

    ?>



    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 4.01 Transitional//EN" "http://www.w3.org/TR/xhtml4/loose.dtd">
    <html>
    <head>


    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    <title>Обработчик </title>

    <link href="style.css" rel="stylesheet" type="text/css" />
    </head>

    <body>

    <table width="1000" border="0" align="center" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF" class="main_border">


    <?php include ("block/header.php");?> <!--вырезанная строка с шапкой сайта и помещенная в блок -->

    <tr>
    <td><table width="1000" border="0" cellpadding="0" cellspacing="0">
    <tr>
    <?php include ("block/lefttd.php"); ?>

    <td valign="top">

    <?php
    $refreshpage="new_deyatel.php";

    if (isset($title) && isset($meta_d) && isset($meta_k)&& isset($date)&& isset($discrip)&& isset($text)&& isset($author))
    {

    $result = mysql_query ("INSERT INTO lessons (title,meta_d, meta_k,date,discrip,text,author VALUES ('$title','$meta_d','$meta_k','$date','$discrip','$text','$author'))"); /* здесь пишем что все условия удовлетворены, все поля формы заполнены и можно вносить в БД*/

    if ($result == 'true') {echo "<p>Все данные успешно занесены</p>";}
    else { echo "<p>Произошла ошибка, данные не добавлены</p>";}

    }

    else {
    echo '<p> Вы заполнили не все поля, данные не могут быть внесены в базу</p>';

    }
    print "<script language='Javascript'>function reload() {location = \"$refreshpage\"}; setTimeout('reload()', 3000);</script>"; exit;
    ?>
    :::::
    после занесения данных в таблицу, прога выводит на экран:::

    Вы заполнили не все поля, данные не могут быть внесены в базу
     
  2. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    <input type="text" name="textfield" id="title" />
    id тут нипричем. имя поменяй на то, которое у тебя уже проверяется.
     
  3. wertel

    wertel Активный пользователь

    С нами с:
    22 апр 2010
    Сообщения:
    46
    Симпатии:
    0
    т.е. Вы хотите сказать чтоб я вместо name="textfield" подставил name="title"???? а ID оставить????
     
  4. wertel

    wertel Активный пользователь

    С нами с:
    22 апр 2010
    Сообщения:
    46
    Симпатии:
    0
    скрипт формы------


    <form id="form1" name="form1" method="post" action="add_deyatel.php">
    <p>
    <label><span class="view_date">Введите вид деятельности</span> <br />
    <input type="text" name="textfield" id="title" />
    </label>
    <br />
    <br />
    <label><span class="view_date">Введите краткое описание деятельности</span> <br />
    <input type="text" name="textfield2" id="meta_d" />
    </label>
    <br />
    <br />
    <label><span class="view_date">Введите ключевые слова для будущего поиска</span> <br />
    <input type="text" name="textfield3"id="meta_k" />
    </label>
    <br />
    <br />
    <label><span class="view_date">Введите дату добавления</span><br />
    <input name="textfield4" type="text"id="date" value="2010-04-24" />
    </label>
    <br />
    <span class="view_date"><br />
    <label>Введите краткое описание с тэгами обзаца</label>
    </span>
    <label><br />
    <textarea name="textarea" cols="60" rows="10" id="discrip"></textarea>
    </label>
    <br />
    <br />
    <label><span class="view_date">Введите полный текст с тэгами абзацев</span><br />
    <textarea name="textarea2" cols="60" rows="30" id="text"></textarea>
    </label>
    <br />
    <br />
    <label><span class="view_date">Введите автора</span><br />
    <input type="text" name="textfield5" id="author" />
    </label>
    <br />
    <br />
    <br />
    <label>
    <input name="Submit" type="submit" id="submint" class="lesson_name" value="Занести данные в базу " />
    </label>
    </p>
    </form>



    ID добавлял сам....

    и че то опять подчеркнут красной волнистой <link href="style.css" rel="stylesheet" type="text/css" />
     
  5. wertel

    wertel Активный пользователь

    С нами с:
    22 апр 2010
    Сообщения:
    46
    Симпатии:
    0
    я подставил, но результата нет.... я просто чайник плин :/
     
  6. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    wertel
    Еще раз говорю - id здесь не имеет значения. В пхп передается значения name="title", name="text" и т.д. Посмотри, чтоб все инпуты имели точно те имена, которые ты потом проверяешь на существование.
    А если не срабатывает эта твоя проверка if (isset($title) && isset($meta_d) && isset($meta_k)&& isset($date)&& isset($discrip)&& isset($text)&& isset($author)) , то значит чтото не доходит до сюда.
    Проверь, что попадает в массив $_POST, гдето вверху напиши var_dump($_POST);, посмотришь, все ли есть имена инпутов там.
     
  7. wertel

    wertel Активный пользователь

    С нами с:
    22 апр 2010
    Сообщения:
    46
    Симпатии:
    0
     
  8. wertel

    wertel Активный пользователь

    С нами с:
    22 апр 2010
    Сообщения:
    46
    Симпатии:
    0
    array(8) { ["title"]=> string(4) "ысас" ["meta_d"]=> string(5) "ыыаыа" ["meta_k"]=> string(3) "ыыа" ["date"]=> string(10) "2010-04-24" ["discrip"]=> string(6) "ыыаыаа" ["text"]=> string(7) "ыаыаыаы" ["author"]=> string(5) "ыыаыа" ["Submit"]=> string(22) "Занести данные в базу " }

    Произошла ошибка, данные не добавлены


    а это после того как я поменял в функции-- name---- все значения на ID-шные
     
  9. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Зачем тебе вообще ID? Каждое текстовое поле (то куда ты вводишь всякие author и title) имеет имя, которое передается при нажатии кнопки (сабмита). Но передается именно имя, а не твои ид. Каждый инпут должен выглядеть так: <input name="title" type="text">, где name="title" - это имя этого инпута. Ид тут не обязательно, если ты им не умеешь пользоваться. Но именно так, а не <input type="text" name="textfield" id="title" />, потому что в скрипт-обработчик передастся значение переменной textfield, а не title. В обработчике у тебя же проверяется именно title, а не textfield. И поскольку скрипт не находит нужной ему title с какимто значением, то у тебя это условие if (isset($title) && isset($meta_d) && isset($meta_k)&& isset($date)&& isset($discrip)&& isset($text)&& isset($author)) не будет выполнено, и скрипт вернет false, в итоге ничего в базу у тебя не запишется.

    Из этого видно, что у тебя есть текстовые поля с именами title, meta_d, meta_k, date, discrip, text, author и кнопка. Тут все чОтко, чтото пришло в скрипт, значит уже не пусто и пол дела сделано. Дальше...
    В этом запросе ошибка, посмотри где ты натупил со скобками, поставил не там где нужно. Найдешь, переставишь и будет тебе счастье :)
     
  10. wertel

    wertel Активный пользователь

    С нами с:
    22 апр 2010
    Сообщения:
    46
    Симпатии:
    0

    УРАААА.... Спасибо, ты просто гений... я переставил скобку вот отсюда mysql_query ("INSERT INTO lessons (title,meta_d, meta_k,date,discrip,text,author VALUES ('$title','$meta_d','$meta_k','$date','$discrip','$text','$author') )" ); вот сюда
    mysql_query ("INSERT INTO lessons (title,meta_d, meta_k,date,discrip,text,author ) VALUES ('$title','$meta_d','$meta_k','$date','$discrip','$text','$author')");


    а функция var_dump(); она может проверять все функции???
     
  11. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
  12. wertel

    wertel Активный пользователь

    С нами с:
    22 апр 2010
    Сообщения:
    46
    Симпатии:
    0
    Спасиб, я это впринципе и хотел спросить... про доп информацию... Спасиб