好的我知道这不能用PHP完成,我认为它是通过使用Ajax / Javascript完成的... 不幸的是我对这些很不满意,我需要你的帮助..
所以我根据玩家为用户选择的球队所玩的球员制作了<select>
。它工作正常,没问题。
我需要的是一个按钮,它会为用户选择的播放器添加1个XP。
<?php
$query = mysql_query("SELECT `team` FROM `users` WHERE `username`='". $_SESSION['username'] ."'");
$row2 = mysql_fetch_assoc($query);
$result = mysql_query("SELECT `name` FROM `players` WHERE `team`='". $row2['team'] ."'");
$dropdown = "<select name='players'>";
while($row = mysql_fetch_assoc($result)) {
$dropdown .= "\r\n<option value='{$row['name']}'>{$row['name']}</option>";
}
$dropdown .= "\r\n</select>";
echo $dropdown;
?>
<button onclick="">Support</button>
就我而言,更新看起来像这样:
$oldxp = mysql_query("SELECT `xp` FROM `players` WHERE `name`="the option the user selected,got stuck here");
mysql_query("UPDATE `players`SET `xp`=''". $oldxp ."' + 1' WHERE `name` = "the option the user selected, got stuck here");
所以我需要的是如何获得用户选择的内容并将其替换为“用户选择的选项,卡在这里”以及如何在Java中执行此操作,因为我无法将PHP代码放入onclick
事件,因为它不起作用?
非常感谢。
答案 0 :(得分:3)
更改按钮html
- 添加onclick功能
HTML:
<button onclick="saveData()">Support</button>
点击按钮,向服务器发送ajax请求并运行查询。
jquery的:
function saveData(){
$.ajax({
type: "POST",
url: "your_php_page.php",
data: { name: $("select[name='players']").val()},
success:function( msg ) {
alert( "Data Saved: " + msg );
}
});
}
PHP:
your_php_page.php:
$sql = "UPDATE `players`SET `xp`= `xp`+ 1 WHERE `name` = '".$_REQUEST['name']."'";
if(mysql_query($sql)){
return "success!";
}
else {
return "failed!";
}
您不应该使用mysql_*
,因为它已被弃用。您应该使用pdo
或mysqli_*
答案 1 :(得分:1)
首先,Java和Javascript是完全不同的语言。除了名称和它们都是编程语言之外,它们共享的很少。
您需要使用Ajax来执行此操作,因此您需要在服务器上使用AJAX文件,以便AJAX可以请求运行您想要的查询。然后您将使用AJAX请求此文件添加XP,我建议您使用jQuery(http://jquery.com/)进行AJAX调用,因为它比纯JavaScript更容易使用。
将jQuery包含到您的网站后,您可以使用以下内容进行ajax调用:
$.ajax({
type: 'post',
url: 'http://domain.com/myscript.php',
success: function(data){
// callback function
}
});
文档:https://api.jquery.com/jQuery.ajax/
你可以在一个函数中包装ajax调用,然后使用onclick调用你想要使用的按钮来调用该函数。
例如:
<button onclick='javascript:ajaxCall()'>Call AJAX</button>
function ajaxCall(){
// include code above
return false; // not always essential, but I usually return false.
}