У меня есть таблица разрешений, и я хочу, чтобы проверить каждую несколько ящиков, и модальное окно открывается полями ввода для редактирования имени разрешения. Как только я отправлю, я хочу обновить базу данных новыми именами каждого ввода.Обновление базы данных из нескольких входных значений
Вот то, что я до сих пор ...
Для каждого ящика проверил я из положил это в модальный:
<div class="form-group">
<label>Permission Name</label>
<input class="del-'+row.id+' form-control" id="name['+row.name+']" type="text" name="name['+row.id+']" value="'+row.name+'" >
<input class="del-'+row.id+' form-control" id="id['+row.name+']" type="hidden" name="id['+row.id+']" value="'+row.id+'" >
</div>
Вот что код JS выглядит для выше:
$("#editModalForm").append('<div class="form-group"><label>Permission Name</label><input class="del-'+row.id+' form-control" id="name['+row.name+']" type="text" name="name['+row.id+']" value="'+row.name+'" ><input class="del-'+row.id+' form-control" id="id['+row.name+']" type="hidden" name="id['+row.id+']" value="'+row.id+'" ></div>');
Вот PHP код, когда я отправить форму:
//Update permission level names
$permissionId = $_POST['id'];
if($permissionDetails['name'] != $_POST['name']) {
$permission = trim($_POST['name']);
$previousName = $permissionDetails['name'];
//Validate new name
if (permissionNameExists($permission)) {
$errors[] = lang("ACCOUNT_PERMISSIONNAME_IN_USE", array($permission));
} elseif (minMaxRange(1, 50, $permission)) {
$errors[] = lang("ACCOUNT_PERMISSION_CHAR_LIMIT", array(1, 50));
} else {
if (updatePermissionNames($permissionId, $permission)) {
$successes[] = lang("PERMISSION_NAME_UPDATE", array($previousName, $permission));
} else {
$errors[] = lang("SQL_ERROR");
}
}
}
Вот функция, которая обновляет базу данных:
//Change a multiple permission level names
function updatePermissionNames($id, $name) {
global $mysqli,$db_table_prefix;
$i = 0;
$stmt = $mysqli->prepare("UPDATE ".$db_table_prefix."permissions
SET name = ?
WHERE
id = ?
LIMIT 1");
foreach($id as $ids) {
$stmt->bind_param("si", $name, $ids);
$result = $stmt->execute();
}
$stmt->close();
return $result;
}
Я не совсем уверен, что я делаю неправильно здесь, так что я надеюсь, кто-то может помочь мне. Если у вас есть примеры, которые были бы замечательными. Опять же, я хочу знать, как я могу обновить каждое значение?
Что вы пытаетесь объединить в значениях вашего HTML-атрибута? Это не JavaScript. – PHPglue
'$ _POST ['name']' будет массивом, а не строкой. – Barmar
Я не опубликовал полный код JS. Просто добавьте его для справки. – iamthestreets