簡體   English   中英

從多個輸入值更新數據庫

[英]Update database from multiple input values

我有一個權限表,我希望能夠檢查每個多個框,並打開一個模態窗口,其中包含輸入字段以編輯權限名稱。 提交后,我想用每個輸入的新名稱更新數據庫。

這是我到目前為止所擁有的......

對於檢查的每個盒子,我把它放在模態中:

<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; 
}

我不太確定我在這里做錯了所以我希望有人可以幫助我。 如果你有任何可能很棒的例子。 我想再次知道如何更新每個值?

如果你想獲得name =“id ['+ row.id +']”的輸入值,你應該使用

$arrID = $_POST['id']
foreach($arrID as $key => $value){
    echo $key;
    echo $value;
}

因為輸入id [1]是發布到服務器時的數組,它不是字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM