如何分割行从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"]); 
} 
}); 
+2

您可以将您的参数'数据:{EID:EID}' – Saty

+0

@ SATY:谢谢,我可以把没有任何问题,PHP中的值,并试图增加一个检查输出的警报。它的全部内容都在我想分割的一行中,并将值写入我的网页中的每个文本框。 –

+0

@ ImClarky,那是我的错字。现在更新。然而,暂时没有将结果放入#eventTitle中,我尝试将输出置于警报框中。结果会以'undefined'的形式返回。 –

脚本最后固定的问题。感谢各位的支持。

这是我的文件现在的样子。但是,您对以下代码进行任何修改的意见是非常受欢迎的。再次感谢。

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

当'$ result'为'false'时,'$ array'变量不会被初始化。因此,在条件之前初始化$ array var,比如'$ array = []'; – rogeriolino

+0

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