我想知道为什么我的查询没有返回标题建议的数据
我的JQuery:
$(".output").click(function() {
var noteid = $(this).data("noteid");
$("#right-box").load("connectionDetails.php", { noteid: noteid });
});
我的connectionDetails.php
<?php
$myServer = "replaced";
$connectionInfo = array('Database' => 'replaced', 'UID' => 'replaced', 'PWD' => 'replaced');
//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']) . "'";
var_dump($_POST);
$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) );
}
?>
我的index.php
<!DOCTYPE html>
<html>
<head>
<title>Juan - Home</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script type="text/javascript" src="scripts/scripts.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet" media="all">
<link rel="stylesheet" href="styles/igotswag.css" type="text/css">
<link rel="stylesheet" href="styles/swaganimations.css" type="text/css">
</head>
<body>
<?php include 'connectionDetails.php'; ?>
<!-- Header Area -->
<table class="header-container">
<tr>
<td style="width: 40%; text-align: left;"><a href="index.php"><img class="hover-cursor" src="Images/TEAMS_Logo.png"></a></td>
<td style="width: 10%;" class="custom-header">TEAMS Wiki <span style="font-size: 30px;" class="glyphicon glyphicon-globe"></span></td>
<td style="width: 40%;">
<table style="text-align: right; width: 100%">
<tr>
<td style="text-align: right;"><span style="font-size: 24px; text-align: right;" class="hvr-icon-grow"></span></td>
</tr>
</table>
</td>
</tr>
</table>
<div class="pull-down-container">
<div class="panel1">
<br />
<p>Now you see me!</p>
</div>
<p class="slide" style="text-align: center;">
<div class="pull-me hvr-icon-hang" style="text-align: center; vertical-align: top;">More</div>
</p>
</div>
<!-- End Header Area -->
<!-- Main Body Area -->
<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 output' data-noteid='{$noteName['NoteID']}' style='width: 100%; border-right: 5px solid #00AA88; height: 50px;'>" . $noteName['NoteName'] . "</div>";
}
echo "</div>";
?>
</div>
<div id="right-box">
<?php
if ($note = sqlsrv_fetch_array( $showNotes, SQLSRV_FETCH_ASSOC))
{
echo $note['Note'];
}
?>
</div>
</div>
<!-- End Main Body Area -->
<!-- Footer Area -->
<!-- End Footer Area -->
</body>
</html>
在我的主索引中有一个while循环,可以从数据库中检索数据,每个数据通过我的SQL表中的data-noteid='{$noteName['NoteID']}'
给出一个ID,然后在我的JQuery中分配
所以当我点击其中一个生成的div时,它会根据ID
在同一页面上拉伸扩展文本(因此是AJAX)当我在connectionDetails.php中使用var_dump($ _ POST)时,它返回数组(0){}
那为什么不找到任何ID?
答案 0 :(得分:1)
嗯,我已经从你的代码中获取了基础知识并构建了一些测试代码。
所以我们......
<强>的index.php 强>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<?php include "test.php"; ?>
<script>
$(".output").click(function () {
var noteid = $(this).data("noteid");
console.log('Got here - Noteid = ' + noteid);
$("#right-box").load("connectionDetails.php", {noteid: noteid});
});
</script>
</body>
</html>
减少您感兴趣的代码版本。
<强> test.php的强>
<div id="left-box">
<?php
echo "<div style='width: 100%;'>";
$noteName['NoteID'] = 1;
$noteName['NoteName'] = 'Note 1';
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>";
$noteName['NoteID'] = 2;
$noteName['NoteName'] = 'Note 2';
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>";
?>
</div>
<div id="right-box">
</div>
connectionDetails.php 是
<?php
var_dump($_POST);
所以这有效......但是将js段移到test.php的包含之上会使它无效。
这表明您的js脚本需要在页面加载后运行。
如果我正确地假设你的JS在<script type="text/javascript" src="scripts/scripts.js"></script>
所以你只需将它移到页面的末尾...... DOM元素必须在调用JS之前出现......但只是检查$(document).ready()是否有帮助...
选项2 无需更改js包含的位置......只需要像这样包装当前的js代码......
$(document).ready(function () {
$(".output").click(function () {
var noteid = $(this).data("noteid");
console.log('Got here - Noteid = ' + noteid);
$("#right-box").load("connectionDetails.php", {noteid: noteid});
});
})
正如它暗示的那样,它将等到文档加载并且它会很高兴...
在大多数情况下,虽然您倾向于在页面末尾加载所有JS,因此在任何JS被触发之前就会出现...
下一位...... 这真的很粗糙,准备好并且没有经过测试,但这个想法就在那里......
所以只是处理你的connectionDetails.php的主要部分,我已经采取了 处理该职位的部分......
//... Your pre existing code here for the DB etc...
// Rewrite of this section of connectionDetails.php
//Defining my queries
$getNotes = "SELECT NoteID, NoteName, Note FROM Notes";
$getTemplateNotes = "SELECT TemplateNoteID, TemplateNoteName, TemplateNote FROM TemplateNotes";
$getReplaceVariables = "SELECT ReplaceVariableID, ReplaceVariableName, ReplaceVariableNote FROM ReplaceVariables";
$resultNotes = sqlsrv_query( $conn, $getNotes );
$resultTemplate = sqlsrv_query($conn, $getTemplateNotes);
$resultVariables = sqlsrv_query($conn, $getReplaceVariables);
// Still in development
// ====================
// This is very rough and ready just for testing
// On Initial Page load, we don't have anything so this is okish
if (isset($_POST['noteid'])) {
$showNoteInfo = "SELECT Note FROM Notes WHERE NoteID = " . $_POST['noteid'];
$showNotes = sqlsrv_query($conn, $showNoteInfo);
}
// *** The rest of your code ***
请记住这只是第一次我们可以做得更好......