【问题标题】:Javascript Array from MySQL来自 MySQL 的 Javascript 数组
【发布时间】:2014-02-16 04:27:11
【问题描述】:

好的,我在一个学习网站上工作,遇到了过去几天我无法克服的一个大障碍,尽管尝试解决这个问题让我克服了一些其他障碍,我'我现在卡住了......

如果有人知道任何教程或任何非常有用的东西,我发现很难找到教程来帮助我,我可以找到零碎的东西,但没有任何东西能够帮助我找出解决方案。

我想要发生的事情: 当这个人进入课程页面时,它会从问题列表中提取 5 个项目,并一次将它们呈现给第 1 个人,当他们按 Enter 键时,它会将他们带到下一个项目,当他们已经完成 5 个项目时它会离开页面。

有什么作用: 使用 MySQL 提取 5 个问题 ID

我需要什么: 将 5 个问题 ID 放入 javascript 箭头 根据第一个数组编号将数据加载到页面中 遍历数组将数据加载到页面上而无需完全刷新

这是我到目前为止的课程.php 页面,减去我尝试过的一些东西,这些只是代码 sn-ps 以及我从 stackoverflow 中发现的我试图使用我的设置:

<!doctype html>
<?php
include ("Connections/localhost.php");

//Get up to five questions that user hasn't seen
$sql = "SELECT quest_id FROM questions LEFT OUTER JOIN answers ON questions.quest_id = answers.ans_question WHERE answers.ans_question IS null and questions.quest_level <= (SELECT user_level FROM users WHERE username = '".$_SESSION['username']."' LIMIT 5);";
$qresult = mysql_query($sql);

//Get number of lessons available
$result = mysql_query("SELECT COUNT(*) AS total FROM questions LEFT OUTER JOIN answers ON questions.quest_id = answers.ans_question WHERE answers.ans_question IS null and questions.quest_level <= (SELECT user_level FROM users WHERE username = '".$_SESSION['username']."');");
$les = mysql_fetch_assoc($result);
?>

<html>
<head>
<meta charset="utf-8">
<title>Lesson</title>

<script>
function play_audio() {
    document.getElementById('id1').play();
}

var lessons = <?php echo $les['total']; ?>;
var i = 1;

if(lessons > 5) {
    lessons = 5
}

function next_question() {
    if(i<lessons) { //if there are still reviews to do
        //call webpage to get new information
        i++;
    }
    else {
        //Load finished page
    }
}

</script>

<link href="review.css" rel="stylesheet" type="text/css">
</head>

<body>

<div id="text_display">
<p><?php echo "Question Appears Here" ?></p>
</div>

<div id="looking">
What is the <?php echo "Meaning?" ?>
</div>

<div id="input_bar">
<form>
  <input type="text" name="textfield" id="txt_input">
</form>
</div>
<div id="audio">
<form>
    <input name="audio" type="button" id="btn_audio" value="Audio" onClick="play_audio()">
</form>
</div>
<div id="info">
<audio id="id1" src="audio/" style="display:none"></audio>
<h2>Information</h2>
<p></p>
</div>
</body>
</html>

我有一个 getitem.php 页面,该页面将从数据库中提取选定的问题信息,以便我可以从中提取信息并更新课程页面,而无需重新加载。

<?php
include ("Connections/localhost.php");

//Get item from url
$question = $_GET["ans_question"];

//Make sure to get UTF-8
$change = "SET NAMES 'utf8'";
mysql_query($change) or die("The change did not work: $change");

//Pull that question from the database
$sql = mysql_query("SELECT * FROM questions WHERE quest_id = '".$question."'");
$item= mysql_fetch_assoc($sql);

?>

<html>
<meta charset="utf-8">
<body>
<div id="text"><?php echo $item['quest_text']; ?></div>
<div id="type"><?php $qtype = $item['quest_type']; echo $qtype ?></div>
<div id="question"><?php echo $item['quest_question']; ?></div>
<div id="answer"><?php $ans = $item['quest_ans']; echo $ans?></div>
<div id="qaudio"><?php $qaudio = $item['quest_audio']; echo $qaudio?></div>
<div id="qinfomation"><?php echo $item['quest_info'];?></div>

</body>
</html>

【问题讨论】:

  • 所以您想将数据(5 个问题)从 getitem.php 传输到 course.php?
  • 是的,这是我的问题之一,但我需要将变量传递到该页面,所以它就像 localhost/getitem.php?ans_question=1
  • 对于初学者,我强烈建议您不再使用mysql_query 和原始 MySQL API 的其他相关函数,因为它们现在已从 PHP 中贬值。我的建议是改用 PDO 或 mysqli,因为它们都在最新版本的 PHP 中受支持并且更安全。
  • Aww 没有更多的 mysql_query ... 就像我在另一个表扬中所说的,我上次使用 php 是第 2 版...

标签: javascript php jquery mysql arrays


【解决方案1】:

使用像laravel 这样的框架来帮助你简化事情会对你有很多好处,但如果你是 php 和 web 开发的新手,那么使用核心 php propgramming 和 mysql 查询将是有意义的.另一方面,Laravel 非常容易学习和安装。话虽如此,您还可以决定将您的结果集从 mysql 一个 json 数据返回到您的网页并使用 jquery 来捕获它。

您应该关注的是如何构建 Ajax 应用程序,为此我强烈建议您使用 Jquery library

【讨论】:

  • 谢谢,我会检查一下,我不是新手,我使用 php 已经有好几年了...版本 2 是我上次做 web 时的全新版本开发,我已经完成了一个基本的 javascript 类,但在这里几乎没有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-04
  • 2014-05-29
  • 2016-07-10
  • 2018-05-15
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
相关资源
最近更新 更多