Есть форма, которая передаёт значения select-ов через POST-запрос, но надо к ним добавить ещё массив, который формируется в процессе создания этих select-ов. Как это сделать? Возможно это не записывать в значение тестового input-а, после чего его отправлять? :)
first.php:
<form class="forma" action="second.php" method="post">
<div class="form-group">
<select class="form-control" name="NamesUsers">
<?php
$name = $_SESSION['login'];
$availableNames = array();
if ($_SESSION['RolOfUser'] == 'admin'){
$sql = mysqli_query($db, "SELECT login FROM users WHERE login != '$name'");
while ($row = $sql->fetch_assoc())
{
echo "<option value=\"".$row['login']."\">" . $row['login'] . "</option>";
array_push($availableNames, $row['login']);
}
}else {
$sqlModer = mysqli_query($db,
"SELECT login FROM users INNER JOIN roli ON users.id=roli.UserId where users.login !='$name' and roli.RolOfUser !='admin'");
while ($rrow = $sqlModer->fetch_assoc()) {
echo "<option value=\"".$rrow['login']."\">" . $rrow['login'] . "</option>";
array_push($availableNames, $row['login']);
}
}
?>
</select>
</div>
<div class="form-group">
<select class="form-control" name = "SetRol">
<option value = "admin">Сделать администратором</option>
<option value = "moderator">Сделать модератором</option>
<option value = "user">Понизить до ЮЗВЕРЯ</option>
</select>
</div>
<input class="btn btn-primary" type="submit" value="Изменить роль">
</form>
second.php:
$NameUser = $_POST['NamesUsers'];
$NameRol = $_POST['SetRol'];
$allowed = array("admin", "moderator", "user");
//$availableNames = $_POST['$availableNames']; ???
if(in_array($NameRol, $allowed) and in_array($NameUser, $availableNames)){
$sql = "UPDATE roli SET RolOfUser = ? WHERE UserId = (SELECT id FROM users WHERE login = ?)";
$statement = $db->prepare($sql);
$statement->bind_param("ss", $NameRol, $NameUser);
$statement->execute();
}else{
echo "<div class=\"message center\"><p>Невозможный пользователь или роль</p></div>";
}
Передавать через POST в данном случае небезопасно, могу обмануть и передать что то другое))) Вы можете определить какой список должен быть на основании значения $_SESSION['RolOfUser'] и сделать запрос в базу данных для получения этого списка.
$name = $_SESSION['login'];
$availableNames = [];
if ($_SESSION['RolOfUser'] == 'admin'){
$sql = mysqli_query($db, "SELECT login FROM users WHERE login != '$name'");
}else {
$sqlModer = mysqli_query($db,
"SELECT login FROM users INNER JOIN roli ON users.id=roli.UserId where users.login !='$name' and roli.RolOfUser !='admin'");
}
while ($row = $sqlModer->fetch_assoc()) {
array_push($availableNames, $row['login']);
}
Без вывода отправляемой информации в коде сайта - никак, но вы можете поступить неочевидно - отправлять форму на JS и перед отправкой добавить ей нужный параметр Пример на jq ajax
$('.sudmit-class').click(function () {
var settings = {
"async": true,
"crossDomain": true,
"url": "http://",
"method": "GET",
"headers": {
// ВСЕ НЕОБХОДИМЫЕ ПАРАМЕТРЫ
}
}
$.ajax(settings).done(function (response) {
console.log(response);
});
})
Если вопрос только об HTML и форме, тогда сериализуйте данные и положите их в скрытый input Например: Если отправка при помощи jQuery Тогда вы можете вписать данные в любой блок и затем через селектор и при помощи jQuery выбрать эти данные и отправить обработчику php
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Я загружаю файл audio через onActivityResult(), мне нужно его отправить на сервер (php) с помощью библиотеки volleyКак мне кодировать audio в строку base64
У меня есть какой то массив со словами, который я сортирую по длинеХочу сделать так, что бы на выходе он выдавал все возможные перестановки
Занимаюсь написанием автотестовНедавно стал очень сильно тормозить (работает по 3, 9, 49 минут, в зависимости от тестового стенда, когда раньше...