Создание собственного сайта: AJAX/JS/PHP, помогите, пожалуйста.

  • Автор темы Санджи
  • 23
  • Обновлено
  • 15, May 2024
  • #1
Всем привет, Я пытаюсь изучить PHP/AJAX/Javascript, чтобы создать собственную веб-страницу. Я создал БД и PHP-скрипт, который извлекает из нее данные. Я настроил его на получение запроса, и он правильно возвращает данные.

Кажется, у меня даже настроен javascript для создания объекта XMLHTTPRequest, и он возвращает данные из PHP так, как должно. Но как только это произойдет, страница обновится и вернется к исходной загруженной странице. Я понятия не имею, почему он это делает.

Пожалуйста помоги! Вы можете увидеть страницу и то, что она делает (нажимайте кнопки меню, чтобы увидеть ее) по адресу ne.fario.us/jonelle/main2.php. HTML
 

<?php

$categoryID = "\"" . $_GET['categoryID'] . "\"";

include 'dblogin.php';

$sql = "SELECT Authors.AuthorName, Articles.PostingDate, Categories.CategoryName, Articles.Title, Articles.Content, Articles.upVotes, Articles.downVotes

FROM Articles

INNER JOIN Authors on Articles.AuthorID = Authors.AuthorID

INNER JOIN Categories on Articles.CategoryID = Categories.CategoryID

WHERE Categories.CategoryID = $categoryID

ORDER BY Articles.ArticleID DESC;";

$result = $conn->query($sql);

if ($result->num_rows > 0)

{

// output data of each row

while($row = $result->fetch_assoc())

{

$score = $row[upVotes] - $row[downVotes];

echo

"<article><div class='article_header'>". $row["Title"].

"</div><div class='article_datetime'>by: " . $row["AuthorName"].

" on: " . $row["PostingDate"].

" in: " . $row["CategoryName"].

"</div><div class='article_content'>" . $row["Content"].

"</div><div class='article_footer'>Vote: +1 / -1 score: " . $score. "</div></article>";

}

}

else

{

$sql = "SELECT Categories.CategoryName

FROM Categories

WHERE CategoryID = $categoryID;";

$result =$conn->query($sql);

if($result->num_rows > 0)

{

while ($row = $result->fetch_assoc())

{

echo "0 results in the " . $row["CategoryName"] . " category.";

}

}

}

$conn->close();

?>
Код (разметка): Javascript
 <script language = "javascript" type = "text/javascript"> <!-- function fetchArticles(categoryID) { var ajaxRequest; try { // Opera 8.0+, Firefox, Safari ajaxRequest = new XMLHttpRequest(); }catch (e) { // Internet Explorer Browsers try { ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); }catch (e) { try{ ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); }catch (e){ // Something went wrong alert("Your browser broke!"); return false; } } } ajaxRequest.onreadystatechange = function() { if (ajaxRequest.readyState == 4 && ajaxRequest.status == 200) { var ajaxDisplay = document.getElementById('page_content'); ajaxDisplay.innerHTML = ajaxRequest.responseText; } } var queryString = "?categoryID=" + categoryID; ajaxRequest.open("GET", "[URL='https://lumtu.com/yti/aw55waHBodHRwOi8vbmUuZmFyaW8udXMvam9uZWxsZS9kYi9mZXRjaEFydGljbGVzMizVG']http://ne.fario.us/jonelle/db/fetchArticles2.php[/URL]" + queryString, true ); ajaxRequest.send(null); } //--> </script>
Код (JavaScript): PHP
  <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="./css/nef_main.css"> <script src="./js/getWindowSize.js"></script> <script src="./js/fetchArticles.js"></script> <script language = "javascript" type = "text/javascript"> <!-- function fetchArticles(categoryID) { var ajaxRequest; try { // Opera 8.0+, Firefox, Safari ajaxRequest = new XMLHttpRequest(); }catch (e) { // Internet Explorer Browsers try { ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); }catch (e) { try{ ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); }catch (e){ // Something went wrong alert("Your browser broke!"); return false; } } } ajaxRequest.onreadystatechange = function() { if (ajaxRequest.readyState == 4 && ajaxRequest.status == 200) { var ajaxDisplay = document.getElementById('page_content'); ajaxDisplay.innerHTML = ajaxRequest.responseText; } } var queryString = "?categoryID=" + categoryID; ajaxRequest.open("GET", "[URL='https://lumtu.com/yti/aw55waHBodHRwOi8vbmUuZmFyaW8udXMvam9uZWxsZS9kYi9mZXRjaEFydGljbGVzMizVG']http://ne.fario.us/jonelle/db/fetchArticles2.php[/URL]" + queryString, true ); ajaxRequest.send(null); } //--> </script> <!--[if lt IE 9]> <script src="[URL='https://lumtu.com/yti/a4SS4anNodHRwOi8vaHRtbDVzaGl2Lmdvb2dsZWNvZGUuY29tL3N2bi90cnVuay9odG1sN1Gd']http://html5shiv.googlecode.com/svn/trunk/html5.js[/URL]"></script> <![endif]--> <title>Nefarious Games</title> </head> <body id="body" onLoad="getWindowSize(); fetchArticles(0);"> <div id="clouds">.</div> <header id="header"> <div id="wrap"> <div class="cut1"></div> <div class="cut2"></div> <div id="content"> <div id="logo1"></div> <div id="logo2"></div> </div> </div> </header> <nav id="nav"> <div id="menu_buttons"> <ul id="navigation"> <a href="" onClick="fetchArticles(1)"><li class="button_nav">bio</li></a> <a href="" onClick="fetchArticles(2)"><li class="button_nav">resume</li></a> <a href="" onClick="fetchArticles(3)"><li class="button_nav">game design</li></a> <a href="" onClick="fetchArticles(4)"><li class="button_nav">coding</li></a> <a href="" onClick="fetchArticles(5)"><li class="button_nav">blog</li></a> </ul> </div> </nav> <section id="page_titles"> <div class="lightbar"> <hr id="lightbar"> </div> <div id="pagetitle"> Biography </div> <div id="nef_games"> <a href="" onClick="fetchArticles(2)">Nefarious Designs</a> </div> </section> <section id="articles"> <div id="page_content"> </div> <div class="lightbar"> <hr id="lightbar"> </div> </section> <footer id="footer"> <ul id="information_panel"> <li id="social_media"> <ul id="social_media_buttons"> <li class="button_sm"><a href="[URL='https://lumtu.com/yti/bhhhhb3NodHRwOi8vdHdpdHRlci5jb20vYnJvdGhlcnlhG']http://www.twitter.com/brotherxaos[/URL]"><img id="button_twitter" src="./images/icons/button_twitter_normal2.jpg" alt="Братхаос в Твиттере"></a></li> <li class="button_sm"><a href="[URL='https://lumtu.com/yti/bQYYQb3NodHRwOi8vZmFjZWJvb2suY29tL2Jyb3RoZXJ4XZo']http://www.FB.com/brotherxaos[/URL]"><img id="button_FB" src="./images/icons/button_FB_normal2.jpg" alt="Братхаос на ФБ"></a></li> <li class="button_sm"><a href="[URL='https://lumtu.com/yti/YzllzY2FodHRwczovL2xpbmtlZGluLmNvbS9pbi9yd2RhdmhR2']https://www.linkedin.com/in/rwdavisca[/URL]"><img id="button_linkedin" src="./images/icons/button_linkedin_normal2.jpg" alt="Братхаос в LinkedIn"></a></li> <li class="button_sm"><a href="[URL='https://lumtu.com/yti/bQYYQb3NodHRwOi8vcGludHJlc3QuY29tL2Jyb3RoZXJ4XZo']http://www.pintrest.com/brotherxaos[/URL]"><img id="button_pintrest" src="./images/icons/button_pintrest_normal2.jpg" alt="Братхаос на Pintrest"></a></li> <li class="button_sm"><a href="[URL='https://lumtu.com/yti/dz99zdHNodHRwczovL3BsdXMuZ29vZ2xlLmNvbS8xMDgyNTAxMTM5MjU2NDU2NDA4NTkvcGvkT']https://plus.google.com/108250113925645640859/posts[/URL]"><img id="button_google+" src="./images/icons/button_googleplus_normal2.jpg" alt="Братхаос в Google+"></a></li> <li class="button_sm"><a href=""><img id="button_gmail" src="./images/icons/button_gmail_normal.png" alt="Brotherxaos в Gmail"></a></li> </ul> </li> <li id="copyright"> <ul> <li class="text_c">ne.fario.us, Nefarious Designs; all rights reserved</li> <li class="text_c">© 2010 - 2016 Richard Davis</li> <li class="text_c"><a class="extLink" href="[URL='https://lumtu.com/yti/bvNNvbS9odHRwOi8vbWlzc2pvbmVydS5kZXZpYW50YXJ0Lm0JX']http://missjoneru.deviantart.com/[/URL]">Graphic Design by: Jonelle Prideaux</a></li> </ul> </li> </ul> </footer> </body> </html>
PHP: принятые меры по устранению неполадок
  • Я могу напрямую посетить файл php и передать ему идентификатор категории, чтобы вернуть правильные значения. CategoryID 0 имеет некоторый Lorem Ipsum, все остальные номера 1–5 ничего не имеют, но возвращают оператор, указывающий на это.
  • http://ne.fario.us/jonelle/db/fetchArticles2.php?categoryID=0

  • http://ne.fario.us/jonelle/db/fetchArticles2.php?categoryID=1

  • Я отключил оба оператора onLoad в своем HTML на случай, если они активируют еще одно обновление страницы.
  • Я удалил обе ссылки на внешние файлы JavaScript в заголовке HTML.
  • Погуглил, как бы вы это ни назвали, но результаты не помогли.


Даже несмотря на все эти изменения, PHP по-прежнему возвращает данные, а страница впоследствии перезаписывает их. Заранее благодарим за то, что уделили время на это, и особенно, если вы можете помочь это исправить.

Санджи


Рег
20 Oct, 2015

Тем
1

Постов
3

Баллов
13
  • 10, Jun 2024
  • #2
ХА! Я починил это!
Мой якорь перезагружал страницу. Я обновил его до



И теперь это не вызывает перезагрузку страницы.

Иногда все, что вам нужно сделать, чтобы найти решение, — это поговорить об этом с кем-то еще...
 

Алексей Зубков


Рег
24 Oct, 2011

Тем
1

Постов
2

Баллов
12