Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从通过json_encode传递到单独文本框中显示的mysql db中分割行_Javascript_Php_Mysql_Ajax - Fatal编程技术网

Javascript 如何从通过json_encode传递到单独文本框中显示的mysql db中分割行

Javascript 如何从通过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

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

我期待的结果是从mySQL表中选定的行中获取每一列中的值,以填充到#eventTitle、#eventDescription等中

请在下面找到我的代码

查找\u 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();
     ?>

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