gpt4 book ai didi

PHP - 使用 var_dump 时 SQL 查询返回 array(0) { }

转载 作者:行者123 更新时间:2023-11-29 11:10:01 25 4
gpt4 key购买 nike

我想知道为什么我的查询没有返回标题所示的数据

我的 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 表中获得一个 ID,其中 data-noteid='{$noteName['NoteID ']}' 然后在我的 JQuery 中分配

因此,当我单击这些生成的 div 之一时,它会根据 ID 在同一页面上提取扩展文本(因此是 AJAX)

当我在 connectionDetails.php 中使用 var_dump($_POST) 时,它返回 array(0) { }

那么为什么它找不到任何 ID?

最佳答案

嗯,我只是从您的代码中获取了基础知识,并构建了一些测试代码。

所以我们有...

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 ***

记住这只是第一步,我们可以做得更好......

关于PHP - 使用 var_dump 时 SQL 查询返回 array(0) { },我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40767828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com