如何从通过json_encode传递的mysqldb中分割行,以在单独的文本框中显示

How to split the row from mysql db passed through json_encode to display in separate textboxes

本文关键字:分割 单独 显示 文本 mysqldb json encode      更新时间:2023-09-26

我试图将mysql语句输出的结果从一个php页面拆分到另一个包含javascript的页面。我尝试了以下方法,但我的代码中缺少一些东西:-(

我期待的结果是从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"]);
}
});

它是以字符串形式出现的,因为它是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

语句+绑定以自动转义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
    }
});

最终解决了这个问题。感谢大家的支持。

这就是我的文件现在的样子。然而,欢迎您对以下代码的任何修改发表意见。再次感谢。

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();
    }
});