Ajax JSON.parse 不会填充所有数据
Posted
技术标签:
【中文标题】Ajax JSON.parse 不会填充所有数据【英文标题】:Ajax JSON.parse doesn't fill all data 【发布时间】:2021-06-06 22:17:01 【问题描述】:对不起标题,我不知道如何命名正在发生的事情!
好的,所以我有一个 json.parse 将数据库数据放入其中的编辑模式。它正在工作并提取console.log上的所有数据库信息,它正在工作并填写标题输入框,但不是注释文本区域,它不会填充数据。我不确定我错过了什么,我认为它与文本区域有关,但不确定。下面是我的代码示例。感谢您的帮助。
模态表单:
<form action="#" method="POST" id="edit-note-form" class="px-3">
<input type="hidden" name="note_id" id="note_id">
<div class="form-group">
<input type="text" id="title" name="title" class="form-control form-control-lg" placeholder="Enter Title"
required>
</div>
<div class="form-group">
<textarea name="note" id="note" class="form-control form-control-lg" placeholder="Write Note Here" rows="6"
required></textarea>
</div>
<div class="form-group">
<input type="submit" name="editNote" id="editNoteBtn" value="Edit Note"
class="btn btn-info btn-block btn-lg">
AJAX 和 JSON.parse 代码:
$("body").on("click", ".editBtn", function(e)
e.preventDefault();
// Get value from id
edit_id = $(this).attr('id');
$.ajax(
url: 'assets/php/process.php',
method: 'POST',
data:
edit_id: edit_id
,
success: function(response)
console.log(response);
data = JSON.parse(response);
$('#note_id').val(data.note_id);
$('#title').val(data.title);
$('#note').val(data.note);
);
);
Process.php 句柄:
if (isset($_POST['edit_id']))
$note_id = $_POST['edit_id'];
$row = $cuser->edit_note($note_id);
echo json_encode($row);
方法:
public function edit_note($note_id)
$sql = "SELECT * FROM notes WHERE note_id = :note_id";
$stmt = $this->conn->prepare($sql);
$stmt->execute(['note_id' => $note_id]);
$result = $stmt->fetch(PDO::FETCH_ASSOC);
return $result;
【问题讨论】:
代码看起来不错。填充标题后,尝试通过检查元素检查 textarea 值。也许数据在那里,但它不可见。否则你可以尝试.html()
或.text()
而不是.val()
在textarea
我没有看到任何会阻止文本显示的内容,占位符文本会显示,但数据库数据不会显示。只有标题有效。尝试了 html() 和 text() 但仍然没有。我不知道发生了什么。
你试过console.log($('#node'))
吗?查看元素发生了什么
搞清楚发生了什么!
【参考方案1】:
Add Modal 和 Edit Modal 都有 id="note" 的字段。无论出于何种原因,它都不会影响标题字段,但是一旦我将编辑模式的注释字段设置为 id="edit_note" 它工作正常。感谢 Beshamber Chaukhwan 提醒我 console.log($("#note") 它让我知道有两个字段。
【讨论】:
乐于助人?以上是关于Ajax JSON.parse 不会填充所有数据的主要内容,如果未能解决你的问题,请参考以下文章
Django:使用 ajax 查询(字符串/Json)时出现格式问题
Ajax提交数据SpringBoot后台报错“HttpMessageNotReadableException: JSON parse error: Cannot construct instance“