我有一个包含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) );
}
?>
答案 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()
只返回TRUE
或FALSE
,而不是变量的值。您应该在整个代码周围包含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());
}
}
您从未在服务器脚本中回显查询结果。