在影响引擎中从 JavaScript 运行 php 代码
Posted
技术标签:
【中文标题】在影响引擎中从 JavaScript 运行 php 代码【英文标题】:Runs php code from JavaScript in impact engine 【发布时间】:2013-08-04 03:50:21 【问题描述】:我使用名为Staroids的影响力游戏引擎创建了一个游戏。
我已经创建了一个数据库来存储高分。
我已经完成了之前answer 中所说的操作,并查看了其他一些解决方案,但似乎不起作用!
我正在尝试运行一个包含以下代码的 php 文件:
<?php
$connect = mysql_connect('localhost', 'root', 'password');
mysql_select_db('staroids', $connect);
$sql = 'INSERT INTO staroids (score) VALUES ("'.$_POST['score'].'")';
$result = mysql_query($sql);
?>
这是我在 javascript 文件中运行的代码:
$.post('scripts/register.php', score: score, function()).error(function()
alert('error... ohh no!');
);
当它到达此代码时,在控制台中会出现以下错误:
Uncaught ReferenceError: $ is not defined
【问题讨论】:
将 "'.$_POST['score'].'" 更改为 '".$_POST['score']."' 不要使用 mysql 扩展。它已经贬值了,还有更好的选择。 【参考方案1】:我在上面的 cmets 的帮助下解决了这个问题,并使用了大量的试验和错误,这里是工作代码:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.js"></script>
//make sure you run this otherwise the $post request wont work!
然后在 JavaScript 函数中我想在哪里运行我放置的代码:
$.post('register.php', score: this.score, function()).error(function()
alert('error... ohh no!');
);
//this runs the php file parsing through the score variable
下面是我运行的 PHP 代码,将解析后的变量添加到数据库中的表中:
<?php
$score = $_POST['score'];
mysql_connect("localhost", "root", "password");
mysql_select_db("staroids");
mysql_query("INSERT INTO scores (score) VALUES ('$score')");
?>
【讨论】:
【参考方案2】:您可能没有正确地将 jQuery 加载到您的页面中。确保头部中有加载 jQuery 的脚本标签,并进行故障排除以确保它实际上正在加载 jQuery。
【讨论】:
是的 jQuery 正在运行,我认为它一定与游戏引擎 Impact.js 有关,我会在他们的论坛上发帖,不过谢谢! 进入您的控制台并输入$
并告诉我会发生什么。您可能只需要添加jQuery.noConflict()
对。如果 $
指的是 jQuery,它会变成这样:function (e,t)return new x.fn.init(e,t,r);
。试着输入jQuery
看看你是否明白。如果是这样,那么 jQuery 正在加载但不使用 $
。事实上,为了简单起见,只需输入 $ == jQuery
,如果它显示“false”,那就是你的问题。
糟糕,我在 jquery 被注释掉时运行它,当我输入 $ 和输入 jQuery jQuery function ( selector, context ) // The jQuery object is actually just the init constructor 'enhanced' return new jQuery.fn.init( selector, context, rootjQuery );
时它输出 function ( selector, context ) // The jQuery object is actually just the init constructor 'enhanced' return new jQuery.fn.init( selector, context, rootjQuery );
不知道如何,但它现在似乎可以工作了......好吧,没有更多控制台错误,但它仍然没有发布到数据库中,为@Samuel Reid 的帮助干杯跨度>
以上是关于在影响引擎中从 JavaScript 运行 php 代码的主要内容,如果未能解决你的问题,请参考以下文章