javascript - 提示验证并在取消时返回 false
问题描述
我正在开发一个 PHP Web 应用程序。
在显示所有类别的类别页面上,我想放置一个编辑提交按钮,单击事件将打开一个带有类别名称的提示按钮,以便在用户需要时更改它。
我还想对提示框(min-length='5'
)进行一些验证,如果用户单击取消按钮返回 false(现在返回 null)并且不提交表单,否则如果验证正常并单击确定以提交具有类别 id 的表单和新的类别名称(提示值)来更新数据。
代码示例:
echo "<table>";
$strCats=$con->query("SELECT * FROM categories ORDER BY catName");
$CatsRows=$strCats->rowCount();
if ($CatsRows==0) {
echo "NO DATA FOUND";
}else{
while($CatsRow = $strCats->fetch()){
echo "<tr><td>$CatsRow[catName]</td>
<td><button type='submit' name='btnEditCategory' value='$CatsRow[catId]' onclick='return prompt(\"Rename category\",\"$CatsRow[catName]\");'>EDIT</button></td></tr>";
}
}
echo "</table>";
解决方案
最后我解决了。
if(isset("cmdEditCategory")){
$catName = str_replace('"',"`",str_replace("'","`",$_POST['txtCatName']));
$catId = $_POST['cmdEditCategory'];
$sqlEditCategory=$con->prepare("UPDATE categories SET catName=? WHERE catId=?");
$sqlEditCategory->bindParam(1, $catName, PDO::PARAM_STR, 25);
$sqlEditCategory->bindParam(2, $catId, PDO::PARAM_INT, 11);
if ($sqlEditCategory->execute()) {
echo "<script type='text/javascript'>notif('success','". MSG_SUCCESS ."','". MSG_UPDATED ."');</script>";
}else{
echo "<script type='text/javascript'>notif('error','". MSG_WARNING ."','". MSG_ERROR ."');</script>";
}
}
$strCats=$con->query("SELECT * FROM categories ORDER BY catName");
$CatsRows=$strCats->rowCount();
if ($CatsRows==0) {
echo "<div class='alert alert-danger'>". MSG_NO_DATA_FOUND ."</div>";
}else{
echo "<form action='/..$_SERVER[REQUEST_URI]' method='post'>
<table>";
while($CatsRow = $strCats->fetch()){
echo "<tr><td>$CatsRow[catName]</td>
<td>
<button type='submit' name='cmdEditCategory' value='$CatsRow[catId]' onclick='return editCategory(\"$CatsRow[catName]\");'>". EDIT ."</button>
</td>
</tr>";
}
echo "</table>
<div style='display:none'>
<input type='text' id='txtCatName' name='txtCatName' />
</div>
</form>
<script type='text/javascript'>
function editCategory(catName){
var msg = prompt('Rename category',catName);
if(msg != null){
document.getElementById('txtCatName').value=msg;
return true;
}else{
return false;
}
}
</script>";
}
如果有其他更好的解决方案,请回复。
推荐阅读
- perl - 调用定义为变量的子程序
- java - java.lang.AssertionError:未设置内容类型
- python - 使用 ImageDataGenerator 时如何使用 to_categorical
- c# - 当我通过元组列表循环时,它显示索引超出范围错误
- r - 何时终止正在运行的脚本 R
- python - 从 Google Analytics 导出特定细分的受众概览数据
- dart - Dart - 基于椭圆曲线的密钥生成 25519
- amazon-advertising-api - 有没有办法使用亚马逊广告 API 获得广告系列的总支出和总销售额?
- javascript - 根据行和列在onclick中获取值
- visual-studio-code - 如何在 vscode 中启用 make 命令