Получение переменной ComboBox для хранения в MySQL - PullRequest
0 голосов
/ 26 сентября 2011

У меня есть html-страница, которая получает данные из таблицы 'hs_hr_employee' и размещает информацию в таблице на веб-странице. Затем у меня есть еще одна таблица «Права», которая получает информацию из 4 столбцов из таблицы «hs_hr_employee» и сохраняет их в столбцах. В дополнение к этим 4 в таблице «прав» есть дополнительный столбец «Разрешения».

Теперь у меня есть комбинированный список с 4 вариантами. Когда я нажимаю кнопку «Сохранить», я хочу сохранить значение, выбранное в поле со списком, и сохранить его в таблице «прав» по ​​отношению к пользователю.

(рядом с каждым пользователем есть поле со списком).

Обновленный код:

       <?php

 $connection = mysql_connect('localhost','admin','root');
if( isset($_POST['submit']) )
{
    if( isset( $_POST['cb_permissions'] ) && is_array( $_POST['cb_permissions'] ))
    {
        foreach( $_POST['cb_permissions']  as $emp_number => $permission)
        {
            $sql = "UPDATE `your_permission_table` SET permission='".mysql_real_escape_string($permission)."' WHERE emp_number='".mysql_real_escape_string($emp_number)."'";
            echo __LINE__.": sql: {$sql}\n";
            mysql_query( $sql );
        }
    }
}
?>
<p style="text-align: center;">
    <span style="font-size:36px;"><strong><span style="font-family: trebuchet ms,helvetica,sans-serif;"><span style="color: rgb(0, 128, 128);">File Database - Administration Panel</span></span></strong></span></p>
<p style="text-align: center;">
    &nbsp;</p>

<head>
<style type="text/css">
table, td, th
{
border:1px solid #666;
font-style:Calibri;
}
th
{
background-color:#666;
color:white;
font-style:Calibri;
}
</style>
</head>

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

    <?php 


        if (!$connection)
          {
          die('Could not connect: ' . mysql_error());
          }

        mysql_select_db('users', $connection);

        $result = mysql_query("SELECT emp_number, employee_id, emp_lastname, emp_firstname  FROM hs_hr_employee");

        echo "<center>";

        echo "<table >
        <tr>
        <th>Employee Number</th>
        <th>Employee ID</th>
        <th>Surname</th>
        <th>Name</th>
        <th>Permissions</th>
        </tr>";

        while($row = mysql_fetch_array($result))
          {
          echo "<tr>";
          echo "<td>" . $row['emp_number'] . "</td>";
          echo "<td>" . $row['employee_id'] . "</td>";
          echo "<td>" . $row['emp_lastname'] . "</td>";
          echo "<td>" . $row['emp_firstname'] . "</td>";
          echo "<td> <select name='cb_permissions['".$row['emp_number']."'><option value='all'>All</option> <option value='remote'>Remote Gaming</option> <option value='landbased'>Landbased Gaming</option> <option value='general'>General Gaming</option> </select> </td>"; 
          echo "</tr>" ;

          }

        echo "</table>";

        echo "</center>";

        echo mysql_query('INSERT into rights(Emp_num, ID, Name, Surname) SELECT emp_number, employee_id, emp_firstname, emp_lastname FROM hs_hr_employee');

        $_POST['cb_permissions'];

        mysql_close($connection);

    ?>

<p style="text-align: center;">
    &nbsp;</p>
<p style="text-align: center;">
    &nbsp;</p>

<p style="text-align: right;">
    <input name="Save_Btn" type="button" value="Save" />


    </p>

</form>

Любая помощь о том, как я могу это сделать?

Снимок экрана, чтобы получить общее представление о том, что я делаю: enter image description here

Ответы [ 2 ]

0 голосов
/ 26 сентября 2011

Я предлагаю:

  1. Использовать require_once ("db_connect.php") <- в этом файле установить соединение </li>
  2. Используйте smarty & html_options, чтобы показать этот раскрывающийся список.

1 раз вы узнаете это, затем - используете. Код начнет организовываться ... Может быть, комплекс для начинающих. Но это правильный путь.

0 голосов
/ 26 сентября 2011

Прежде всего, вы должны переместить код подключения в самом верху ваших документов:

$connection = mysql_connect('localhost','admin','root'); 
if (!$connection)
{
    die('Could not connect: ' . mysql_error());
}

mysql_select_db('users', $connection);

Далее вы должны обернуть таблицу внутри тега:

<form method="post" action="target_url.php>
    <table>
    ...
    </table>
    <input type="submit" name="submit" value="Save"/>
</form>

После этого вы должны хранить employee_id или emp_number (в зависимости от того, какой ключ таблицы вы будете использовать для установки разрешений) где-то в вашей форме:

while($row = mysql_fetch_array($result))
{
?>
<tr>
    <td><?php echo $row['emp_number']; ?></td>
    <td><?php echo $row['employee_id']; ?></td>
    <td><?php echo $row['emp_lastname']; ?></td>
    <td><?php echo $row['emp_firstname']; ?></td>
    <td><select name="cb_permissions['<?php echo $row['emp_number']; ?>']">
        <option value='all'>All</option>
        <option value='remote'>Remote Gaming</option>
        <option value='landbased'>Landbased Gaming</option>
        <option value='general'>General Gaming</option>
    </select></td>
</tr>
<?php
}

Затем на вашем target_url.php вам нужно будет сделать:

Если target_url.php совпадает с вашей формой, то приведенный ниже код должен быть размещен в самом верху вашего документа.

<?php
if( isset($_POST['submit']) )
{
    if( isset( $_POST['cb_permissions'] ) && is_array( $_POST['cb_permissions'] ))
    {
        foreach( $_POST['cb_permissions']  as $emp_number => $permission)
        {
            $sql = "UPDATE `your_permission_table` SET permission='".mysql_real_escape_string($permission)."' WHERE emp_number='".mysql_real_escape_string($emp_number)."'";
            echo __LINE__.": sql: {$sql}\n";
            mysql_query( $sql );
        }
    }
}
?>

Вот и все.

...