如何使用按钮的onclick事件更新MySQL数据库?

时间:2014-04-19 19:59:00

标签: javascript php mysql sql-update

好的我知道这不能用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事件,因为它不起作用?

非常感谢。

2 个答案:

答案 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_*,因为它已被弃用。您应该使用pdomysqli_*

jquery ajax api doc

答案 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.
}