-1
내 시스템에 편집 기능이 있습니다. 아포스트로피로 텍스트를 입력 할 수 있지만 편집 모달을 열려고하면 더 이상 작동하지 않습니다.입력에 아포스트로피 (')가있는 경우 모달을 다시 열 수 없습니다.
자바 스크립트 함수를 사용하여 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>
";
}
?>
를 호출하는 자바 스크립트 기능을 포함하는 다음 편집 및 깨끗한 PHP 출력의 모달
<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에서 필요한 모든 값을 반향 출력하십시오. –
Reworded : 귀하의 질문은 JS에 관한 것입니다. 귀하의 PHP 코드는 부적절합니다 (PHP 개발자가 아닌 사람들에게는 혼란스럽고 읽기가 어렵습니다). 브라우저가받는 HTML의 결과를 게시하십시오. 힌트 : 소스 또는 개발자 도구를 봅니다. – Phrogz
나는 HTML 태그에서 ... data-streetname = \ "".htmlspecialchars ($ streetName). "\"....을 출력하고 JS에서 this.dataset.streetname을 사용한다. – progysm