-1
所以我第一次在项目中使用AJAX,我试图发送一个POST
但我认为我没有发送请求的权利,或者有我的语法错误或加价。它必须是基本的东西,因为我得到了一些要求。检查出this test domain。任何人都可以对这些PHP错误如何进入它有任何意义?AJAX不检索所有数据与JavaScript请求
这里是我的加价文件:
<!DOCTYPE html>
<html>
<head>
<title>Kyle Breitenbach - Artist Portfolio - Paintings - New York</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<!-- SITE CREDITS FOUND BELOW IN HUMANS.TXT -->
<link type="text/plain" rel="author" href="humans.txt">
<link rel="stylesheet" href="css/style.css?v=5">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
function loadXMLDoc(w_year) {
var xmlhttp;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("gallery").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","work.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("work_year="+w_year);
}
</script>
</head>
<body>
<div id="main">
<div id="mobileNav">
<div class="left">
<p><strong>Kyle Breitenbach</strong></p>
</div>
<div class="right">
<img alt="Kyle Breitenbach Art Gallery Icon" src="images/gallery-icon.png">
</div>
<ul id="mobileMenu">
<?php
foreach(array_unique($w_date) as $key => $value) {
print("<li><a href='javascript:loadXMLDoc(" . $value . ")'>" . $value . "</a></li>" . "\n");
}
?>
<li><a href="http://www.kylebreitenbach.com/cv/">CV</a></li>
<li><a href="http://www.kylebreitenbach.com/contact/">Contact</a>
</ul><!-- "#mobileMenu -->"
</div><!-- "#mobileNav" -->
<div id="nav">
<strong>Kyle Breitenbach</strong>
<br><br><br>
<?php
foreach(array_unique($w_date) as $key => $value) {
print("<p><a href='javascript:loadXMLDoc(" . $value . ")'>" . $value . "</a></p>" . "\n");
}
?>
<br>
<p><a class="about" href="http://www.kylebreitenbach.com/cv/">CV</a></p>
<p><a class="about" href="http://www.kylebreitenbach.com/contact/">Contact</a></p>
</div><!-- "#nav" -->
<div id="gallery"></div>
</div><!-- "#main" -->
<div id="info">
<p id="gallery-title"></p>
<p id="gallery-medium"></p>
<p id="gallery-size"></p>
<p id="gallery-date"></p>
</div><!-- "#info" -->
<script type="text/javascript">
$(document).ready(function() {
<?php print("loadXMLDoc(" . $nav_date[0] . ")"); ?>
});
</script>
<script type="text/javascript" src="new_kb.js"></script>
<script type="text/javascript" src="js/google-analytics.js"></script>
</body>
</html>
这是我的“work.php”的AJAX与来自最后一个文档的work_year
输入请求:
<?php
require("opendbas3.php");
$work_year = $_POST["work_year"];
$w_query = "SELECT * FROM kb_work WHERE p_date='$work_year' ORDER BY p_id DESC";
$w_result = mysql_query($w_query, $link);
while ($w_row = mysql_fetch_array($w_result)) {
$w_id = array(); $w_id_str = $w_row["p_id"]; array_push($w_id, $w_id_str);
$w_src = array(); $w_src_str = $w_row["p_src"]; array_push($w_src, $w_src_str);
$w_title = array(); $w_title_str = $w_row["p_title"]; array_push($w_title, $w_title_str);
$w_medium = array(); $w_medium_str = $w_row["p_medium"]; array_push($w_medium, $w_medium_str);
$w_size = array(); $w_size_str = $w_row["p_size"]; array_push($w_size, $w_size_str);
$w_date = array(); $w_date_str = $w_row["p_date"]; array_push($w_date, $w_date_str);
}
print('<div id="gallery-control-bar">');
print('<div id="gallery-buttons" class="control-bar-item">');
print('<div id="previous-button" class="gallery-button">←</div>');
print('<div id="next-button" class="gallery-button">→</div>');
print('</div><!-- "#gallery-buttons" -->');
print('<div id="image-index" class="control-bar-item"><span id="current-post"></span> of <span id="post-total"></span></div>');
print('<div id="gallery-type" class="control-bar-item">');
print('<img id="gallery-switch" alt="Kyle Breitenbach Art Gallery Icon" src="images/gallery-icon.png"');
print('</div><!-- "#gallery-type -->');
print('</div><!-- "#gallery-control-bar" -->');
print('<div id="gallery-image"></div>');
print("<div id='gallery-viewer'>");
foreach($w_id as $key => $value) {
print("<div class='gallery-row'>");
$i = 1;
for ($x = 0; $x < sizeof($w_id); $x++) {
print("<img id='" . $x . "' class='gallery-item' src='" . $w_src[$x] . "' alt='Kyle Breitenbach " . $w_title[$x] . "'>");
if (($i % 4) == 0) {
print("</div><div class='gallery-row'>");
}
$i++;
}
print("</div>");
}
print('</div><!-- "#gallery-viewer" -->');
print("<script type='text/javascript'>");
print("var w_id = " . json_encode($w_id));
print("var w_src = " . json_encode($w_src));
print("var w_title = " . json_encode($w_title));
print("var w_medium = " . json_encode($w_medium));
print("var w_size = " . json_encode($w_size));
print("var w_date = " . json_encode($w_date));
print("</script>");
?>
这是将这些效果结合在一起的JS文件,这个东西可能有点不相关:
var currentImg = 0;
var totalImg = 0;
$("#next-button").click(function() {
if (currentImg == totalImg) {
currentImg = 0;
}
else {
currentImg++;
}
changeImg();
});
$("#previous-button").click(function() {
if (currentImg == 0) {
currentImg = totalImg;
}
else {
currentImg--;
}
changeImg();
});
function changeImg() {
$("#gallery-image").html("<img src='" + w_src[currentImg] + "'>");
$("#gallery-title").html(w_title[currentImg]);
$("#gallery-medium").html(w_medium[currentImg]);
$("#gallery-size").html(w_size[currentImg]);
$("#gallery-date").html(w_date[currentImg]);
var userCurrent = currentImg + 1;
var userTotal = galleryYear.x_id.length;
$("#current-post").html(userCurrent);
$("#post-total").html(userTotal);
var galWidth = $("#gallery-image" > "img").width();
$("#gallery").width(galWidth);
}
你有什么想法可以重新接近AJAX,也许有不同的调用函数的配置吗?也许有些东西会更适合我的请求的性质,使其正常工作?
提供AJAX结果**的脚本不应该格式化任何东西,它应该返回一个很好的数据集,然后请求者将对其进行格式化。你应该重新评估它的工作方式。 –
从错误中看来,$ w_date是未定义的。尝试为此设置一个硬性值,看看它是否纠正了它。如果确实如此,找出你的var为什么没有定义。 – Mattt