为什么不能从html执行php代码?

时间:2014-05-20 11:53:10

标签: javascript php mysql ajax netbeans

我已经和这个问题斗争了好几天而且真的陷入困境。 我正在尝试调用一个php脚本,其中包含通过javascript从html文件访问mysql数据库的代码。但是当我在我的NetBeans上运行以下命令时,我总是在“$ .ajax({”的地方得到错误。并且NetBean没有指定它是什么错误。它只是说Request被取消了。请帮帮我!!!!

HTML:

<form>
    <p><input type="text" name="username" value=""></p>
    <p><input type="password" name="password" value=""></p>
    <p class="remember_me">
        <label>
            <input type="checkbox" name="remember_me" id="remember_me">
            Remember me on this computer
        </label>
    </p>
    <p><input type="submit" onClick="connect_to_db()" name="submit" value="Login" id="submit"></p>
    <script>
        function connect_to_db(){
            utils.connectToDb(document.getElementsByName("username")[0].value,
                document.getElementsByName("password")[0].value);
        }
    </script>
</form>

API / connect.php:

<?php
$username = $_POST['username'];
$password = $_POST['password'];
try {
    $dbh = new PDO('mysql:host=localhost;dbname=mydb', $username, $password);
    $insert_cmd = "INSERT INTO version VALUES(1)";
    $read_cmd = "SELECT * FROM version";
    foreach($dbh->query($insert_cmd) as $row) {
        print_r($row);
    }
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}
?>

util.js中:

window.utils = {
    connectToDb: function (username, password) {
        $.ajax({
            url: 'api/connect.php',
            data: {'username': username, 'password': password},
            type: 'post',
            success: function(output) {
                alert(output);
            }
        });
    },    
};

注意:我在Windows上使用过类似的代码,但它确实有效。我目前正在将它导出到我的Mac。我还在https.conf中启用了php5模块并配置了我的php.ini。我已经使用包含在其中的简单.php文件测试了我的php和apache。它能够显示php信息。

2 个答案:

答案 0 :(得分:0)

如果它之前有效并且您没有更改代码,那么它可能是一个设置。

检查是否

  • 运行数据库服务器
  • 数据库存在(使用相同的凭据)
  • php版本的差异会影响这个
  • AJAX呼叫是新服务器(同一域/主机)
  • chmod权利没问题

答案 1 :(得分:0)

这可能不是最好的答案,但我确信这会有效,因为这是连接mysql数据库的最佳方式:

$dblocation="localhost"; //Your db location
$yourusername= "root"; //db name
$yourpass= ""; //blah3x
$dbname = "sample"; //database name

$connect = mysqli_connect($dblocation,$yourusername,$yourpass,$dbname);

您可以使用mysqlmysqli,但mysqli会更好。