Значения из динамически создаваемых флажков - PullRequest
0 голосов
/ 19 октября 2011

Я пытаюсь получить значения динамически созданного набора флажков в PHP, но, видимо, я не смог его получить.Исходные коды приведены ниже.

Страница "managestaff.php" позволит искать сотрудников по их именам и выбрасывает список имен с флажками, чтобы администратор мог их проверить и нажать кнопку "удалить".внизу, чтобы удалить персонал, которого проверяют.

Удаление будет сделано на «deletetestaff.php», так как кнопка «удалить» на «managestaff.php» просто перенаправляет эти значения в «deletetestaff.php»"сделать работу по удалению персонала.

коды страницы" managestaff.php ":

<b><h3>Manage Staff</h3></b><br/>

<form action="managestaff.php" method="POST">
<input name="form" type="hidden" id="form" value="true">
<table width=300>
    <tr>
        <td width=112>Staff Name: </td>
        <td width=188><input type="text" class="textfield" name="sname" /><br/></td>
    </tr>
</table><br/>
<input type="submit" value="submit" />
</form>
<?php
if (isset($_POST['form']) && (isset($_POST['sname'])) && $_POST['form'] == 'true') {

$space = '&nbsp;&nbsp;&nbsp;';
$staffname = mysql_real_escape_string($_POST['sname']);
$query = 'SELECT * from staff where staffname like \'%' . $staffname . '%\'';

$result = mysql_query($query) or die(mysql_error());

if (mysql_num_rows($result) != 0) {
    echo '<br><br>';
    echo '<table>';
    echo '<tr><th>Staff ID' . $space . '</th><th>Staff Name' . $space . '</th></tr>';
    echo '<form action="deletestaff.php" method="POST">';
    echo '<input name="delstaffform" type="hidden">';
    while ($row = mysql_fetch_array($result)) {
        echo '<tr>';
        echo '<td>' . $row['staffid'] . '</td><td>' . $row['staffname'] . '</td>';

        // :Begin - dynamic checkbox generation for deleting staff
        echo '<td>';
        echo '<input type="checkbox" name="delstaff" value="' . $row['staffid'] . '"                 />';
        echo '</td>';
        // :End
        echo '</tr>';
    }
    echo '<tr align="right"><td colspan="3"><input type="submit" value="delete"/></td></tr>';
    echo '</form>';
    echo '</table>';

}
}
?>

коды страницы" deletestaff.php ":

<?php
print_r('POST: ' . $_POST);

echo '<br>';

if (isset($_POST['delstaffform']) && isset($HTTP_POST_VARS)) {
    echo 'Submission of delstaffform FOUND !';
    echo 'Staff to delete' . $HTTP_POST_VARS['delstaff'];
}
else{
    echo 'Submission of delstaffform NOT FOUND !';
}
?>

"deletestaff.php" пока не удаляет, так как это тестовая страница.

Текущий вывод, который я получаю, - «Представление delstaffform НЕ НАЙДЕНО!».

Спасибо за решения.

Ответы [ 2 ]

1 голос
/ 19 октября 2011
<?php
if (isset($_POST['delstaff']) && is_array($_POST['delstaff'])) {

    echo 'Submission of delstaffform FOUND !';

    $array = $_POST["delstaff"];

    foreach($array as $value){
        echo "<br>Value: ".$value."<br>";
    }

} else {
    echo 'Submission of delstaffform NOT FOUND !';
}
?>

Нашел ответ самостоятельно, но, тем не менее, вы помогли: D.Большое спасибо.

1 голос
/ 19 октября 2011

Попробуйте это:

<input type="checkbox" name="delstaff[]" value="' . $row['staffid'] . '"/>';

print_r ваш $ _POST, и вы увидите, что он прекрасно помещает ваши представления в массив для вас.

...