Javascript 如何从通过json_encode传递到单独文本框中显示的mysql db中分割行
我试图将mysql语句输出的结果从一个php页面分割到另一个包含javascript的页面。 我尝试了以下方法,但代码中缺少一些内容:-( 我期待的结果是从mySQL表中选定的行中获取每一列中的值,以填充到#eventTitle、#eventDescription等中 请在下面找到我的代码 查找\u event.phpJavascript 如何从通过json_encode传递到单独文本框中显示的mysql db中分割行,javascript,php,mysql,ajax,Javascript,Php,Mysql,Ajax,我试图将mysql语句输出的结果从一个php页面分割到另一个包含javascript的页面。 我尝试了以下方法,但代码中缺少一些内容:-( 我期待的结果是从mySQL表中选定的行中获取每一列中的值,以填充到#eventTitle、#eventDescription等中 请在下面找到我的代码 查找\u event.php <?php $eid = $_POST['eid'] include '/include/db_connect.php'; $sql="SELECT title, desc
<?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();
?>
它以字符串的形式出现,因为它是json。您首先需要解析它 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"]);
}
});
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"];
}
});
终于解决了这个问题。谢谢大家的支持 这就是我的文件现在的样子。不过,欢迎您对下面代码的任何修改发表意见。再次感谢
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();
?>
我建议您开始使用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);
您可以将参数作为
数据:{eid:eid}发送,
@Saty:谢谢,我可以毫无问题地将值发送到php,并尝试添加一个警报来检查输出。这是一行,我正在尝试拆分这些值,并将其放入网页中的每个文本框中。@ImClarky,这是我的输入错误。现在正在更新。但是,我暂时没有将结果放入#eventTitle,而是尝试d将输出放入警报框。结果返回为“未定义”…为了避免sql注入,您应该将$eid更改为intval($eid)或使用mysql_real_escape_字符串。当$result
为false
时,$array
变量将不会被初始化。因此,在条件之前初始化$array变量,如$array=[]
;
<?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);
$.ajax({
type: 'POST',
url: 'lookup_event.php',
data: { eid: eid },
dataType: 'json',
success: function (event) {
// with dataType specified dont need parse
}
});