-1
我的系统具有编辑功能。我可以用撇号输入文本,但是当我尝试打开编辑模式时,它不再起作用。输入有撇号时无法重新打开模式(')
我使用javascript函数将值传入editModal。一些参数包含文本。所以我把这个变量包装在\"\"
。
这是我的代码。
输出行。其中包含调用editModal
<?php
$sql = $db->prepare("SELECT * from tbl_street
WHERE streetStatus <> 2");
$sql->execute();
while($result = $sql->fetch(PDO::FETCH_ASSOC))
{
$id = $result['streetID'];
$streetName = $result['streetName'];
$status = ($result['streetStatus']==1) ? "checked" : "";
echo "
<tr>
<td>$id</td>
<td>$streetName</td>
<td>
<input type='checkbox' onchange='switchStatus($id,this)' data-toggle='toggle' $status>
</td>
<td>
<div class='btn-group' role='group'>
<input type='button' value='Manage' onclick='Xmanage($id,\"$streetName\")' class='btn btn-info'>
<input type='button' value='Remove' onclick='Xdelete($id)' class='btn btn-danger'>
</div>
</td>
</tr>
";
}
?>
的JavaScript的功能,下面是编辑和模态
<div class="form-group">
<!-- Modal -->
<div class="modal fade" id="editModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<!--HEADER-->
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel"><h3>Manage Lot</h3></h4>
</div>
<form action="" method="POST">
<!--BODY-->
<div class="modal-body">
<input name="theID"id="theID" type="text" class="form-control" >
<div class="row">
<div class="row">
<div class="col-md-5">
<label for="streetName">Street Name</label>
<input name="estreetName" id="strtnm"pattern="[a-zA-Z0-9]+[a-zA-Z0-9 ]+" type="text" class="form-control" required placeholder="Street Name">
</div>
</div>
<!--FOOTER-->
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="submit" name="editSubmit"class="btn btn-primary">Save</button>
</div>
</div>
</div>
</div>
<?php
try{
if(isset($_POST['editSubmit'])){
$id = $_POST['theID'];
$streetName = $_POST['estreetName'];
$sql = $db->prepare("
UPDATE tbl_street
SET `streetName` = :sName
WHERE streetID = :id
");
$sql->execute(array(
":sName" => $streetName,
":id" => $id
));
echo"<meta http-equiv='refresh' content='0'>";
}
}catch(Exception $e)
{
echo $e;
}
?>
您不应该将您的HTML生成为PHP字符串。编写普通的HTML,然后在你需要的任何值中回显PHP。 –
重写:你的问题是关于JS的。你的PHP代码是不相关的(并且分散注意力,并且非PHP开发者很难阅读)。发布浏览器收到的HTML的简化结果。提示:查看源代码或开发人员工具。 – Phrogz
我会在HTML标记中输出... data-streetname = \“”。htmlspecialchars($ streetName)。“\”....然后在JS中使用this.dataset.streetname – progysm