将PHP变量传递给JavaScript

时间:2013-01-20 18:03:25

标签: php javascript html web-applications

我是业余Web开发人员,我正在开发一个主要使用JavaScript但需要使用PHP / MySQL的应用程序,因为它是一个测验应用程序,我不希望人们通过“查看”查看所有测验答案资源。”相关页面是:index.html,problems.php,functions.js。 index.html是主要的测验页面。 problems.php是用于连接服务器并在测验页面上获得问题答案的页面。而functions.js用于检查答案是否正确,以及其他促使应用程序执行某些操作的事情。

的index.html:     

<?php
    include ("problems.php");                                    
?>
...

problems.php

<?php
    // Connect to server
    $con = mysql_connect("XXXXXXXXXXXXX", "XXXXXXXXXXX", "XXXXXXXXXXXX");
    mysql_select_db("problems", $con);
    if (!$con) {
         die("Didn't connect");
    }
    $question_num = $_GET["num"];
    $sql = "SELECT question FROM questions WHERE num='" . $question_num . "';";
    $answer = mysql_fetch_array(mysql_query($sql))['question'];
?>

functions.js

function checkAnswer(ans, input) {
    if (ans == input) {
        alert("Correct!");
    }
}

我不是PHP开发人员,对PHP知之甚少(这就是为什么我选择在应用程序中使用JavaScript)。但我想使用GET方法来获得测验问题的答案(当用户点击“提交”传递时?num = 1,2,3,4,5)。然后将从数据库获得的测验答案传递给functions.js checkAnswer函数以检查答案。我的问题是将问题的答案传递给JavaScript中的函数。此外,似乎我的服务器甚至没有在我的代码中连接到数据库。

3 个答案:

答案 0 :(得分:0)

我建议不要在javascript中存储答案,因为任何人都可以打开javascript文件并查看。我建议做所有答案检查服务器端。

将答案作为GET或POST请求中的参数传递给服务器,捕获答案,然后使用mysqli_ *或PDO创建预备语句以检查答案是否正确。

答案 1 :(得分:0)

您可以按照以下方式实现此目的

<强>步骤

  1. 将用户输入的问题ID和答案传递给PHP页面
  2. 在php页面上验证答案
  3. 然后根据答案返回true / false
  4. 我建议您使用jQuery ajax进行此操作

    $.ajax({
       url: "GetAnswerStatus.PHP?questionid=4&input=3"
    }).done(function ( data ) {
       // data = true/ false
       console.log("Answer:" + data);
    });
    

    或使用jQuery .get

    $.get('GetAnswerStatus.PHP?questionid=4&input=3', function(data) {
        console.log("Answer:" + data);
    });
    

答案 2 :(得分:0)

如果您使用javascript获取客户端的答案,用户将能够看到它。将答案发送到服务器(例如使用ajax)并在那里检查(只返回它是否正确)。

直接将GET值插入mysql查询并不是很安全。使用类似mysql_real_escape_string的内容。