Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с insert, Не работает условие if (isset($_POST[... 
V
    Опции темы
PARROT
Дата 24.4.2007, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 3
Всего: 50





--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
andro_id
Дата 24.4.2007, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 17.4.2007
Где: Москва

Репутация: нет
Всего: 1



А зачем редирект, ведь переход и так происходит?

Добавлено через 5 минут и 15 секунд
Так всё-таки, можно пронести переменную, если да, то как? Если нет, "будем искать"  smile 
PM MAIL WWW ICQ Skype   Вверх
PARROT
Дата 24.4.2007, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 3
Всего: 50



Сделать ее глобальной.

Добавлено через 1 минуту и 33 секунды
Код

$GLOBALS['var']=1;



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
andro_id
Дата 24.4.2007, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 17.4.2007
Где: Москва

Репутация: нет
Всего: 1



Не, не получается, видимо придётся решать с помощью JavaScript, в которой я ещё бОльший "0". smile 
PM MAIL WWW ICQ Skype   Вверх
capitan
Дата 24.4.2007, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 2
Всего: 13



Цитата

Хотя я ставил проверку того, что передаётся в $_POST, все данные проходят.

Каким образом? Посмотри что передаётся в $_POST  так var_dump($_POST);
есть ли в массиве переменная "do" ?
PM MAIL WWW ICQ   Вверх
andro_id
Дата 24.4.2007, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 17.4.2007
Где: Москва

Репутация: нет
Всего: 1



Да. передаётся.

array(11) { ["action"]=>  string(0) "" ["device_model"]=>  string(0) "" ["device_serial"]=>  string(0) "" ["device_netname"]=>  string(0) "" ["device_ip"]=>  string(0) "" ["device_mac"]=>  string(0) "" ["device_location"]=>  string(0) "" ["device_date_receive"]=>  string(0) "" ["device_date_spisan"]=>  string(0) "" ["device_comment"]=>  string(0) "" ["do"]=>  string(8) "Добавить" }

Это сообщение отредактировал(а) andro_id - 24.4.2007, 17:42
PM MAIL WWW ICQ Skype   Вверх
capitan
Дата 24.4.2007, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 2
Всего: 13



Попробуй так :
Код

<tr>
      <th width="30%" colspan="2" nowrap>
        <input type="hidden" name="insert_base" value="add_base">
        <input type="submit" name="do" value="Добавить">
        <input type="reset" value="Сбросить"></th>
    </tr>

И делай проверку не if (isset($_POST['do'])) , a
Код

if($_POST['insert_base']=="add_base") {
    $query = "INSERT $inventory_tablename VALUES('', '$device_type', '$device_model', '$device_netname', '$device_serial', '', '', '', '$device_ip', '$device_mac', '$device_date_receive', '$device_comment', '$device_location', '$device_status', '$device_date_spisan')";     
    $result = mysql_query($query);    
}    

PM MAIL WWW ICQ   Вверх
andro_id
Дата 24.4.2007, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 17.4.2007
Где: Москва

Репутация: нет
Всего: 1



Неа, не хочет. А если условие убрать вообще, тогда добавляется и по кнопке и по селекту. Я уже башку сломал  smile 
PM MAIL WWW ICQ Skype   Вверх
capitan
Дата 24.4.2007, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 2
Всего: 13



сделай так:
Код

if($_POST['insert_base']=="add_base") {
   var_dump($_POST);
}   


Выведутся данные?
PM MAIL WWW ICQ   Вверх
andro_id
Дата 24.4.2007, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 17.4.2007
Где: Москва

Репутация: нет
Всего: 1



Нет.
Вот массив:
Код

array(12) { ["action"]=>  string(0) "" ["device_model"]=>  string(0) "" ["device_serial"]=>  string(0) "" ["device_netname"]=>  string(0) "" ["device_ip"]=>  string(0) "" ["device_mac"]=>  string(0) "" ["device_location"]=>  string(0) "" ["device_date_receive"]=>  string(0) "" ["device_date_spisan"]=>  string(0) "" ["device_comment"]=>  string(0) "" ["insert_base"]=>  string(8) "add_base" ["do"]=>  string(8) "Добавить" }

PM MAIL WWW ICQ Skype   Вверх
capitan
Дата 24.4.2007, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 2
Всего: 13



А вообще, эти куски кода в одном файле находятся?
PM MAIL WWW ICQ   Вверх
andro_id
Дата 24.4.2007, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 17.4.2007
Где: Москва

Репутация: нет
Всего: 1



Вот-вот.
Код

if (isset($_POST['do'])) {
    $query = "INSERT $inventory_tablename VALUES('', '$device_type', '$device_model', '$device_netname', '$device_serial', '', '', '', '$device_ip', '$device_mac', '$device_date_receive', '$device_comment', '$device_location', '$device_status', '$device_date_spisan')";
    $result = mysql_query($query);
    } 

Этот код идёт в дочернем файле с формой worcstation.php, которая подключается из родительского файла index.php.
Если перенести его в самое начало родительского файла, тогда всё работает правильно. Т.е. всё, что сидит в var_dump($_POST) попадает в родительский файл и добавляется в базу.
PM MAIL WWW ICQ Skype   Вверх
capitan
Дата 24.4.2007, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 2
Всего: 13



Так с этого и нужно было начинать.
Выложи ещё раз код, пофайлово.
PM MAIL WWW ICQ   Вверх
andro_id
Дата 24.4.2007, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 17.4.2007
Где: Москва

Репутация: нет
Всего: 1



index.php
Код

<?php
include "./common_db.inc";
$link_id = db_connect($default_dbname);
if (isset($_POST['do'])) {
    $query = "INSERT $inventory_tablename VALUES('', '$device_type', '$device_model', '$device_netname', '$device_serial', '', '', '', '$device_ip', '$device_mac', '$device_date_receive', '$device_comment', '$device_location', '$device_status', '$device_date_spisan')";
    $result = mysql_query($query);
    } 
?>    
<form method="post" action="<?php echo $PHP_SELF; ?>">
<input type="hidden" name="action">
<select name="device_explain" onchange="this.form.submit();">
echo "<option>---< Выберите тип >---</option>" ;
<?php
$devices_query = "SELECT device_explain FROM $devices_tablename";
$devices = mysql_query($devices_query);
while($query_data = mysql_fetch_array($devices)) {
    $device_explain = $query_data["device_explain"];
    echo "<option>$device_explain</option>" ;
    }
?>
</select>
</form><br><br><br>

<?php
$devices_query = "SELECT device_type FROM $devices_tablename WHERE device_explain='" . $_POST['device_explain'] . "'";
$devices = mysql_query($devices_query);
while($query_data = mysql_fetch_array($devices)) {
    $device_type = $query_data["device_type"];
    }
    if ($device_type == "workstation") {
        include('workstation.php');
        }     
?>


workstation.php
Код

<center><h3>Добавить оборудование:</h3></center>
<form method="post">
<input type="hidden" name="action">
  <div align="center"><center><table border="1" width="90%">
    
    <tr>
      <th width="30%" nowrap>Модель устройства</th>
      <td width="70%"><input type="text" name="device_model" size="20"></td>
    </tr>
    <tr>
      <th width="30%" nowrap>Серийный номер</th>
      <td width="70%"><input type="text" name="device_serial" size="20"></td>
    </tr>
    <tr>
      <th width="30%" nowrap>Сетевое имя</th>
      <td width="70%"><input type="text" name="device_netname" size="20"></td>
    </tr>
    <tr>
      <th width="30%" nowrap>IP адрес</th>
      <td width="70%"><input type="text" name="device_ip" size="20"></td>
    </tr>
    <tr>
      <th width="30%" nowrap>MAC адрес</th>
      <td width="70%"><input type="text" name="device_mac" size="20"></td>
    </tr>
    <tr>
      <th width="30%" nowrap>Место установки</th>
      <td width="70%"><input type="text" name="device_location" size="20"></td>
    </tr>
    <tr>
      <th width="30%" nowrap>Дата получения</th>
      <td width="70%"><input type="text" name="device_date_receive" size="20">&nbsp; формат даты: YYYY-MM-DD</td>
    </tr>
    <tr>
      <th width="30%" nowrap>Дата списания</th>
      <td width="70%"><input type="text" name="device_date_spisan" size="20">&nbsp; формат даты: YYYY-MM-DD</td>
    </tr>
    <tr>
      <th width="30%" nowrap>Комментарий</th>
      <td width="70%"><input type="text" name="device_comment" size="20"></td>
    </tr>
    <tr>
      <th width="30%" colspan="2" nowrap>
        <input type="submit" name="do" value="Добавить">
        <input type="reset" value="Сбросить"></th>
    </tr>
</table>
  </center></div>
</form>
<?php    
$device_type = $_POST['device_explain'];
$device_model = $_POST['device_model'];
$device_netname = $_POST['device_netname'];
$device_serial = $_POST['device_serial'];
$device_ip = $_POST['device_ip'];
$device_mac = $_POST['device_mac'];
$device_date_receive = $_POST['device_date_receive'];
$device_comment = $_POST['device_comment'];
$device_location = $_POST['device_location'];
$device_status = $_POST['device_status'];
$device_date_spisan = $_POST['device_date_spisan'];
?>


Вот.
PM MAIL WWW ICQ Skype   Вверх
capitan
Дата 24.4.2007, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 2
Всего: 13



в файле workstation.php у формы пропиши action 
Код

<form method="post" action="index.php">


и я бы сделал всё таки так:
Цитата

Попробуй так :
Код

<tr>
      <th width="30%" colspan="2" nowrap>
        <input type="hidden" name="insert_base" value="add_base">
        <input type="submit" name="do" value="Добавить">
        <input type="reset" value="Сбросить"></th>
    </tr>

И делай проверку не if (isset($_POST['do'])) , a
Код

if($_POST['insert_base']=="add_base") {
    $query = "INSERT $inventory_tablename VALUES('', '$device_type', '$device_model', '$device_netname', '$device_serial', '', '', '', '$device_ip', '$device_mac', '$device_date_receive', '$device_comment', '$device_location', '$device_status', '$device_date_spisan')";     
    $result = mysql_query($query);    
}    




Это сообщение отредактировал(а) capitan - 24.4.2007, 18:45
PM MAIL WWW ICQ   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.1259 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.