Моя система имеет функцию редактирования. Я могу вводить текст с апострофом, но, когда я пытаюсь открыть редактирующий модал, он больше не работает.Невозможно повторно открыть модальный, когда ввод имеет апостроф (')
Я использовал функцию javascript для передачи значения в editModal. Некоторые параметры содержат текст. Поэтому я завернул переменную в \"\"
.
Вот мой код.
Вывод строк. Который содержит JavaScripts функции, которая вызывает 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>
";
}
?>
Вот код для редактирования и Modal
<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
Я бы вывел ... data-streetname = \ "". Htmlspecialchars ($ streetName). "\" .... в теге HTML, а затем используйте this.dataset.streetname в JS – progysm