Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Вёрстка веб-сайтов > Кнопка и её свойства


Автор: Syltan 14.7.2010, 20:48
Вот встретил вот такое:
<html>
<head></head>
<body>
<form action="mysql_insert.php" method="post" name="form">

<p><input name="submit" type="submit" value="Занести нового сотрудника в базу" >


</form>
</body>
</html>

Меня смущает вот это:
Код

input name="submit" type="submit" 


Что означает в первом, а что во втором случаи?

Автор: Amphiluke 14.7.2010, 20:57
Не понял, что вас смутило.  smile 

атрибут name — произвольное имя, используемое для идентификации объекта среди дочерних объектов формы
атрибут type определяет поведение и не может быть произвольным. 

smile

Автор: Syltan 14.7.2010, 20:59
А где name может быть ипользовано в пхп?

Автор: Amphiluke 14.7.2010, 21:00
Хотя лично я не стал бы так нарекать кнопку. Хотя бы потому, что submit — это и название метода, и тип, так что лишнее дерганье этого слова хоть и безопасно в даном случае, но не очень красиво, что-ль…

Добавлено через 2 минуты и 17 секунд
Цитата(Syltan @  15.7.2010,  00:59 Найти цитируемый пост)
А где name может быть ипользовано в пхп?

Ну, например, при отправке формы name будет ключом, который идентифицирует значение в суперглобальном массиве $_POST или $_GET. Хотя для кнопок это не так важно, как для текстовых полей

Автор: Syltan 14.7.2010, 21:41
Встретил в файле на который отправляется форма вот такой код:

Код
<?php 

if(isset($_POST['name']))
{
 $name = $_POST['name'];
}

if(isset($_POST['lastname']))
{
 $lastname = $_POST['lastname'];
}


if(isset($_POST['dol']))
{
 $dol = $_POST['dol'];
}



$db = mysql_connect("localhost","alex","12345");
mysql_select_db("first_bd", $db);

$result = mysql_query("insert into firma(name,lastname,dol) VALUES('$name','$lastname','$dol')");

if($result == true )
{
 echo  'Информация в базу занесена успешно';
}else
{
echo 'Информация в базу не добавлена';
}
?>


Скажите, зачем 3 раза проверять 3 переменные на 
существование их в файле на который отправлялась форма то есть в файле mysql_insert.php, это делается для чего?

Автор: Amphiluke 14.7.2010, 21:51
Syltan, ну даете.  smile  Вы решили в одну тему впихнуть все вопросы, которые у вас накопились? Здесь раздел верстки, а раздел PHP http://forum.vingrad.ru/forum/PHP-forum.html


Функцией isset проверяется, присвоено ли переменной определенное значение. Здесь, видимо, автор кода решил перестраховаться. Стандартная проверка, а что? smile

Добавлено через 3 минуты и 9 секунд
Правда, как-то странно. Если переменные не определены, код идет дальше, как ни в чем не бывало. Так что переменные $name, $lastname, $dol могут остаться необъявленными перед использованием. 

Автор: Syltan 14.7.2010, 21:57
В файле на который отправляется форма в нём идёт проверка на существование этих переменных из другого файла который отправлял форму с переменными? Это всё делается для того, чтоб была гарантия что можно исползовать эти перменные и делать с ними что хочешь, после того как проверили их в файле на который отправлялась форма с другого файла?

Автор: Amphiluke 14.7.2010, 22:04
Цитата(Syltan @  15.7.2010,  01:57 Найти цитируемый пост)
В файле на который отправляется форма в нём идёт проверка на существование этих переменных из другого файла который отправлял форму с переменными? Это всё делается для того, чтоб была гарантия что можно исползовать эти перменные и делать с ними что хочешь, после того как проверили их в файле на который отправлялась форма с другого файла?

 smile 

Я думаю, здесь имеется в виду, что некоторые поля пользователь может просто пропустить, или, например, не установить галку в checkbox'е, так что значение не будет передано методом GET  или POST сценарию PHP. 

Автор: Syltan 14.7.2010, 22:06
То есть при нажатии субмит, из всех свойств name в какждом инпуте идёт вытаскивание имён и отправка этих имён в глобальный массив Пост, а затем можно уже в другом файле пользоваться этим масивом пост, в другом файле пхп я имею ввиду.

Автор: Amphiluke 14.7.2010, 22:14
Ну что-то вроде того. Массив $_POST ($_GET) формируется как ассоциативный, т.е. доступ к значениям элементов осуществляется через указание имен тех элементов формы, с которой производилась отправка. И да, этот массив доступен в другом файле сценария .php

Автор: Syltan 14.7.2010, 23:01
А если создать ещё 1 файл пхп, например ttt.php ему не будут доступны переменные из глобального массива ПОСТ, если этот файл не указывался в action формы?

Автор: Amphiluke 14.7.2010, 23:11
Если вы (или кто-то) специально не предпримете действий для этого, то с чего бы какому-то ttt.php лезть в чужой POST? smile

Автор: Syltan 14.7.2010, 23:31
Все атрибуты name которые находятся внутри инпутов формы попадают в глобальный масив ПОСТ, при отправки формы?
Всё атрибуты name превращаются в переменные в пхп и эти сами переменные отправляются в глобальный масив ПОСТ,к которому получает доступ файл пхп, который был указан в актион формы?
Только атрибуты name попадают и ничего кроме них?

Автор: Amphiluke 14.7.2010, 23:40
Syltan, http://ru.wikipedia.org/wiki/HTTP можно почитать подробнее.

Простите, у меня сейчас 3:40 ночи,  
так что  -_-

Автор: bars80080 14.7.2010, 23:43
Цитата(Syltan @  14.7.2010,  23:31 Найти цитируемый пост)
Все атрибуты name которые находятся внутри инпутов формы попадают в глобальный масив ПОСТ, при отправки формы?

нет, ни один. только value

Добавлено через 1 минуту и 28 секунд
а ещё лучше почитать книжку о пхп. тогда следующие пару тысяч вопросов отпадут сами собой

Автор: Syltan 15.7.2010, 00:06
Значит один лишь валюе попадает от каждого инпута в масив ПОСТ и больше ничего кроме него?
Хорошо, ну а как же мы работаем с именами которые указывали в атрибуте name, если вы говорите что в глобальный масив пост оппадает только атрибут валюе?

Все значения инпутов, то есть все валюе каждого инпута и ничего кроме валюе, как валюе попадёт в масив пост?
Но в моём коде:

Код

<html>
<head></head>
<body>
<form action="mysql_insert.php" method="post" name="form">
<p>Введите имя сотрудника: <br><input name="name" type="text" size="20" maxlength="40" >
<p>Введите фамилию: <br><input name="lastname" type="text" size="20" maxlength="40" >
<p>Введите должность:<br><input name="dol" type="text" size="20" maxlength="40" >
<p><input name="submit" type="submit" value="Занести нового сотрудника в базу" >

</form>
</body>
</html>


Валюе в инпутах вначале не имеет значения, а потом получает его при манипуляциях в файле пхп, но манипуляция начинают после отправки формы методом пост в глобальный масив пост, как же тогда в масив пост попадает валюе, если в валюе добавляется значение какое-то после, что, значения name не попадают в масив пост сразу, толкьо валюе? Но как валюе, еслт оно вначале не установлено и его нету?

Автор: SelenIT 15.7.2010, 12:11
Из name берется имя POST-переменной (индекс в массиве $_POST), из value - ее значение. Если value не было указано в разметке, подставляется значение по умолчанию (для чекнутых чекбоксов и, по-моему, радиобаттонов - "On", для остального - пустая строка).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)