JQuery - AJAX - 如何获取数据并分配给Div

时间:2016-11-21 17:43:22

标签: php jquery ajax

我有一个包含3列的表(NoteID,NoteName,Note)

我基本上需要从名为connectionDetails的php文件中获取NoteID,其中包含查询。

我目前有:

<div class="main-container-notes">
    <div id="left-box">
        <?php 

        echo "<div style='width: 100%;'>";

        while( $noteName = sqlsrv_fetch_array( $resultNotes, SQLSRV_FETCH_ASSOC)) 
        {
            echo "<div class='hvr-bounce-to-right1 hover-cursor' style='width: 100%; border-right: 5px solid #00AA88; height: 50px;' id='output'>" . $noteName['NoteName'] . "</div>";
        }

        echo "</div>";
        ?>
    </div>
    <div id="right-box">



    </div>
</div>

每个都需要NoteID,我需要AJAX,因为当我点击其中一个Div时,<div id="right-box">将显示来自&#34;注意&#34;表格的字段没有刷新页面。

请参阅my site了解我的意思

分配&#34; NoteID&#34;的最佳方式是什么?列分别对应的每一行。

以下是connectionDetails.php脚本:

<?php
$myServer = "blank";
$connectionInfo = array('Database' => 'blank', 'UID' => 'blank', 'PWD' => 'blank');

//connection to the database
$conn = sqlsrv_connect($myServer, $connectionInfo)
  or die("Couldn't connect to SQL Server on $myServer");

//Test connection to server
// if ($conn)
// {
//     echo "connection successful";    # code...
// }

//Defining my queries
$getNotes = "SELECT NoteID, NoteName, Note FROM Notes";
$getTemplateNotes = "SELECT TemplateNoteID, TemplateNoteName, TemplateNote FROM TemplateNotes";
$getReplaceVariables = "SELECT ReplaceVariableID, ReplaceVariableName, ReplaceVariableNote FROM ReplaceVariables";
$showNoteInfo = "SELECT Note FROM Notes WHERE NoteID = '" . isset($_POST['noteid']) . "'";

$resultNotes = sqlsrv_query( $conn, $getNotes );
$resultTemplate = sqlsrv_query($conn, $getTemplateNotes);
$resultVariables = sqlsrv_query($conn, $getReplaceVariables);
$showNotes = sqlsrv_query($conn, $showNoteInfo);

if( $resultNotes === false)
{
    die( print_r( sqlsrv_errors(), true) );
}
if( $resultTemplate === false)
{
    die( print_r( sqlsrv_errors(), true) );
}

if( $resultVariables === false)
{
    die( print_r( sqlsrv_errors(), true) );
}

?>

1 个答案:

答案 0 :(得分:1)

NoteID放入DIV的data-nodeid属性中。然后当您单击它时,您可以使用$(this).data("noteid")来获取ID,并在AJAX调用中发送它。

此外,你不能在这里使用`id ='output',因为你在每一行都创建了重复的ID。您应该使用类而不是ID。

所以PHP看起来像:

while( $noteName = sqlsrv_fetch_array( $resultNotes, SQLSRV_FETCH_ASSOC)) 
    {
        echo "<div class='hvr-bounce-to-right1 hover-cursor output' data-noteid='{$noteName['noteID']}' style='width: 100%; border-right: 5px solid #00AA88; height: 50px;'>" . $noteName['NoteName'] . "</div>";
    }

Javascript就像是:

$(".output").click(function() {
    var noteid = $(this).data("noteid");
    $("#right-box").load("connectionDetails.php", { noteid: noteid });
});

脚本中的此查询错误:

$showNoteInfo = "SELECT Note FROM Notes WHERE NoteID = '" . isset($_POST['noteid']) . "'";

isset()只返回TRUEFALSE,而不是变量的值。您应该在整个代码周围包含if

if (isset($_POST['noteid']) {
    $showNoteInfo = "SELECT Note FROM Notes WHERE NoteID = '" . $_POST['noteid'] . "'";
    $showNotes = sqlsrv_query($conn, $showNoteInfo);
    if ($showNotes) {
        $row = sqlsrv_fetch_array($showNotes, SQLSRV_FETCH_ASSOC);
        echo $row['Note'];
    } else {
        die (sqlsrv_errors());
    }
}

您从未在服务器脚本中回显查询结果。