正如我在标题中提到的,如何将JS数组值传递给PHP,然后使用mysqli发送它
以下函数将有助于获取稍后发送的值
function getPlayerName() {
return player.Name;
}
function getPlayerClass() {
return player.Class;
}
function getPlayerLevel() {
return player.Level;
}
对我来说,最重要的是如何将这些数组传递给PHP
@编辑
我使用store.js来保存玩家数组的值(Local Storrage(。这是一个在新玩家创建时保存它的功能
function saveData(){
var playerName = document.getElementById('nickname');
var warriorClass = document.getElementById('warrior');
var mageClass = document.getElementById('mage');
var archerClass = document.getElementById('archer');
if(warriorClass.checked){
store.set('player', {
Name: playerName.value,
Class: 'Warrior',
Level: playerLevel,
XP: playerXP,
HP: playerHP,
MaxHP: playerMaxHP
});
}
else if(mageClass.checked){
store.set('player', {
Name: playerName.value,
Class: 'Mage',
Level: playerLevel,
XP: playerXP,
HP: playerHP,
MaxHP: playerMaxHP
});
}
else if(archerClass.checked){
store.set('player', {
Name: playerName.value,
Class: 'Archer',
Level: playerLevel,
XP: playerXP,
HP: playerHP,
MaxHP: playerMaxHP
});
}
}
@第2版
根据Skamielina的建议,我做了这样的事情:
$.ajax({
method: "POST",
url: "top15.php",
data: { Name: player.Name, Class: player.Class, Level: player.Level }
})
top15.6.php具有以下特性:
<?php
echo 'Name: ' . $_POST['Name'] . '<br/>';
echo 'Level: ' . $_POST['Level'] . '<br/>';
echo 'Class: ' . $_POST['Class'] . '<br/>';
?>
现在,在网页上是
Name:
Level:
Class:
但是,FireBug控制台显示
Name: Oen<br/>Level: 1<br/>Class: Mage<br/>
愚蠢的我…不是数组,我指的是变量。天啊,对不起这个错误:x
使用jQuery和$.ajax
函数(请参阅文档(:
$.ajax({
method: "POST",
url: "some.php",
data: { name: player.Name, class: player.Class, level: player.Level }
})
接下来,您需要有一个php文件来处理来自浏览器的请求,并最终返回结果。
您需要使用AJAX将其发送到服务器,并在服务器上使用PHP和mysqli((进行处理。根据您使用的内容,有很多库可以发出XHR请求,看看JQuery,它可能是最容易使用的。
创建一个新的php页面,通过GET或POST参数获取Name
、Class
和Level
信息:
$name = $_GET/$POST["Name"];
然后,使用mysqli将这些信息存储在数据库中。最后,使用jquery
的ajax
与此页面进行通信。
嗨,你的问题对很多内容都很开放,你需要在发布stackoverflow 之前尝试搜索一下
要将javascript数据发送到php,必须使用Ajax然后,在php中,您可以执行任何想要选择、插入、更新或任何需要的操作。
我建议您使用jQuery框架,并为您添加一个Ajax web crud web应用程序教程。
http://www.ibm.com/developerworks/library/os-php-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();
}
}
并在您的php.php中获取您的价值
$q.=$_获取['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/>";
?>