如何将Javascript数组值传递给PHP,然后使用该值发送MySQL查询?

如何将Javascript数组值传递给PHP,然后使用该值发送MySQL查询?,javascript,php,arrays,Javascript,Php,Arrays,正如我在标题中提到的,如何将JS数组值传递给PHP,然后使用mysqli发送它 下面是一些函数,它们将有助于获取稍后要发送的值 函数getPlayerName{ 返回玩家名称; } 函数getPlayerClass{ 返回玩家。类; } 函数getPlayerLevel{ 返回玩家。水平; } 对我来说最重要的是,我如何将这个数组传递给PHP? @编辑 我正在使用store.js保存玩家数组值本地存储空间。这是一个在创建新播放器时保存它的函数 函数saveData{ var playerName

正如我在标题中提到的,如何将JS数组值传递给PHP,然后使用mysqli发送它

下面是一些函数,它们将有助于获取稍后要发送的值

函数getPlayerName{ 返回玩家名称; } 函数getPlayerClass{ 返回玩家。类; } 函数getPlayerLevel{ 返回玩家。水平; } 对我来说最重要的是,我如何将这个数组传递给PHP? @编辑 我正在使用store.js保存玩家数组值本地存储空间。这是一个在创建新播放器时保存它的函数

函数saveData{ var playerName=document.getElementById'昵称'; var warriorClass=document.getElementById'warrior'; var mageClass=document.getElementById'mage'; var archerClass=document.getElementById'archer'; ifwarriorClass.checked{ 存储。设置“播放器”{ 名称:playerName.value, 班级:'战士', 级别:playerLevel, XP:playerXP, 惠普:playerp, MaxHP:playerMaxHP }; } 否则,请检查ifmageClass.checked{ 存储。设置“播放器”{ 名称:playerName.value, 职业:'法师', 级别:playerLevel, XP:playerXP, 惠普:playerp, MaxHP:playerMaxHP }; } 否则,如果已检查{ 存储。设置“播放器”{ 名称:playerName.value, 班级:'弓箭手', 级别:playerLevel, XP:playerXP, 惠普:playerp, MaxHP:playerMaxHP }; } } @编辑2 在Skamielina的建议下,我做了如下事情:

$.ajax{ 方法:邮寄, url:top15.php, 数据:{Name:player.Name,Class:player.Class,Level:player.Level} } 而top15.php有以下特点:

但是,FireBug控制台显示

Name: Oen<br/>Level: 1<br/>Class: Mage<br/> 

愚蠢的我。。。不是数组,我指的是变量。上帝,很抱歉这个错误:x

您需要使用AJAX将其发送到服务器,并在服务器上使用PHP和mysqli进行处理。根据您使用的内容,有大量库可以发出XHR请求,看看JQuery,它可能是最容易使用的。创建一个新的php页面,通过GET或POST参数获取名称、类和级别信息:

$name = $_GET/$POST["Name"];
然后,使用mysqli将这些信息存储在数据库中。最后,使用jquery的ajax与此页面通信。

使用jquery和$。ajax函数请参见:


接下来,您需要该php文件来处理来自浏览器的请求,并最终返回结果。

您好,您的问题对很多内容都非常开放,您需要在发布stackoverflow之前尝试搜索一下

要将javascript数据发送到php,必须使用 然后进入php,您可以做任何您想要选择、插入、更新或任何您需要的事情。 我建议您使用我为您添加的Ajax web crud web应用教程

希望它能帮助您。

没有JQuery的Ajax

function yourFunction(str){

   if (window.XMLHttpRequest) {
                // code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp = new XMLHttpRequest();
            } else {
                // code for IE6, IE5
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange = function() {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
                }
            }
            xmlhttp.open("GET","yourPhp.php?q="+str,true);
            xmlhttp.send();
}

}
并在yourPhp.php中获取您的值


$q.=$_GET['q']

我不清楚结果是数组还是需要作为数组传递。 正如其他人已经说过的,最好的方法是使用Ajax和Jquery。 如果需要将它们作为数组传递,请选中此项

var player = new players("pippo","something",12);
var array_php = new Array();
array_php["name"] = getPlayerName(player);
array_php["Class"] = getPlayerClass(player);
array_php["level"] = getPlayerLevel(player);

//pass it to php file with jquery

$.ajax({
  method: "POST",
  url: "/echo/html/", //user your own file.php
  data: { array:array_php }
}).done(function() {
 alert("uploaded");
});

对不起,我的意思是变量而不是数组。我的缺点是,解决方法比我想象的要简单得多

<?php
        echo '<script>';
        echo "var player = store.get('player')";
        echo '</script>';
        echo "Name: <script> document.writeln(player.Name)</script><br/>";
        echo "Level: <script> document.writeln(player.Level)</script><br/>";
        echo "Class: <script> document.writeln(player.Class)</script><br/>";
?>

你能为你的对象播放器添加一些代码吗?如果它是一个数组或者对象或者其他什么,那么它毫无理由地不能正常工作。使用FireBug,我从POST的控制台中得到了类似的东西。Name:OenLevel:1Class:Mage,但在页面上,它的名称是:Level:Class:若您想放置top15.php文件执行的结果,您应该使用.done函数。请参阅jquery文档。
function yourFunction(str){

   if (window.XMLHttpRequest) {
                // code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp = new XMLHttpRequest();
            } else {
                // code for IE6, IE5
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange = function() {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
                }
            }
            xmlhttp.open("GET","yourPhp.php?q="+str,true);
            xmlhttp.send();
}

}
var player = new players("pippo","something",12);
var array_php = new Array();
array_php["name"] = getPlayerName(player);
array_php["Class"] = getPlayerClass(player);
array_php["level"] = getPlayerLevel(player);

//pass it to php file with jquery

$.ajax({
  method: "POST",
  url: "/echo/html/", //user your own file.php
  data: { array:array_php }
}).done(function() {
 alert("uploaded");
});
<?php
        echo '<script>';
        echo "var player = store.get('player')";
        echo '</script>';
        echo "Name: <script> document.writeln(player.Name)</script><br/>";
        echo "Level: <script> document.writeln(player.Level)</script><br/>";
        echo "Class: <script> document.writeln(player.Class)</script><br/>";
?>