如何分割行从MySQL数据库传递通过json_encode在单独的文本框中显示
我试图将结果从一个PHP页面的mysql语句输出拆分到另一个包含javascript的页面。 我尝试了下面的方法,但我的代码中缺少一些东西:-(如何分割行从MySQL数据库传递通过json_encode在单独的文本框中显示
我期待的结果是从mySQL表中选定行的每列中获取值以填充到#eventTitle,#eventDescription等上....
请在下面找到
lookup_event.php
<?php
$eid = $_POST['eid']
include '/include/db_connect.php';
$sql="SELECT title, description, start, end FROM evenement where id=".$eid;
$result = $mysqli->query($sql);
while ($row = mysqli_fetch_assoc($result)) {
$sessions[] = $row;
}
echo json_encode($sessions);
die();
?>
脚本我的代码在cal.php
eid = event.id;
$.ajax({
type: 'POST',
url: 'lookup_event.php',
data: eid,
success: function (sessions) {
$('#eventTitle').val(sessions["title"]);
$('#eventDescription').val(sessions["description"]);
}
});
脚本最后固定的问题。感谢各位的支持。
这是我的文件现在的样子。但是,您对以下代码进行任何修改的意见是非常受欢迎的。再次感谢。
lookup_event.php
<?php
include '/include/db_connect.php';
$eid = $_POST['eid'];
$sql = "SELECT title, description, start, end FROM evenement where id=" . intval($eid);
$result = $mysqli->query($sql);
if ($result) {
$array = mysqli_fetch_array($result);
}
echo json_encode($array);
die();
?>
cal.php
eid = event.id;
$.ajax({
type: 'POST',
url: 'lookup_event.php',
data: {eid:eid},
success: function (event) {
var event = JSON.parse(event);
$('#eventTitle').val(event.title);
$('#eventStart').val(moment(event.start).format('YYYY-MM-DD, HH:mm:ss'));
$('#eventEnd').val(moment(event.end).format('YYYY-MM-DD, HH:mm:ss'));
$('#eventDescription').val(event.description);
$('#myModal').modal();
}
});
当'$ result'为'false'时,'$ array'变量不会被初始化。因此,在条件之前初始化$ array var,比如'$ array = []'; – rogeriolino
@rogeriolino:当然 –
它作为一个字符串,因为它的json。你首先需要解析它。在cal.php
eid = event.id;
$.ajax({
type: 'POST',
url: 'lookup_event.php',
data: eid,
success: function (sessions) {
var sessions = JSON.parse(sessions);
$('#eventTitle').val(sessions["title"];
$('#eventDescription').val(sessions["description"];
}
});
我建议你开始使用PDO:http://php.net/pdo
And语句+结合自动跳脱SQL注入。
<?php
// ... include PDO connection ($conn)
$eid = (int) $_POST['eid'];
$sql = "SELECT title, description, start, end FROM evenement WHERE id = :id";
$stmt = $conn->prepare($sql);
$stmt->bindParam('id', $eid);
$stmt->execute();
$result = $stmt->fetchAll();
echo json_encode($result);
的Javascript:
$.ajax({
type: 'POST',
url: 'lookup_event.php',
data: { eid: eid },
dataType: 'json',
success: function (event) {
// with dataType specified dont need parse
}
});
您可以将您的参数'数据:{EID:EID}' – Saty
@ SATY:谢谢,我可以把没有任何问题,PHP中的值,并试图增加一个检查输出的警报。它的全部内容都在我想分割的一行中,并将值写入我的网页中的每个文本框。 –
@ ImClarky,那是我的错字。现在更新。然而,暂时没有将结果放入#eventTitle中,我尝试将输出置于警报框中。结果会以'undefined'的形式返回。 –