3

Ok I know this can't be done using PHP and I think it's done by using Ajax/Javascript... Unfortunately I'm very low on these and I need your help..

So I have made a <select> based on what players there are playing for the team the user has selected. It works fine, no problems.

What I need for it is a button that will add 1 XP to the player that the user has selected.

<?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>

In my case, the update would look something like this:

$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");

So what I need is how do I get what the user has selected and replace it with that "the option user selected, got stuck here" and how do I do this in Java since I can't put that PHP code in the onclick event because it won't work?

Thanks a lot.

0

2 Answers 2

4

Change your button html
-- add a onclick function
html:

<button onclick="saveData()">Support</button>

onclick in the button send an ajax request to the server and run your query.

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!";
  }

you should not use mysql_* since it is deprecated. you should use pdo or mysqli_*

jquery ajax api doc

Sign up to request clarification or add additional context in comments.

2 Comments

Good answer but it doesn't update. The value remains the same.. I think its because it doesn't know what the user selected...
Finally worked. The problem was '$_REQUEST['name']' which didn't work.
1

First off, Java and Javascript are totally different languages. They share very little except a name and their both a programming language.

You'd need to use Ajax to do this, so you'd need a PHP file on your server that the AJAX can request to run the query you're wanting. You would then use AJAX to request this file to add the XP, I suggest you use jQuery (http://jquery.com/) for AJAX calls as its much easier to use than pure javascript.

Once you have included jQuery into your site you can use the following to make an ajax call:

$.ajax({
    type: 'post',
    url: 'http://domain.com/myscript.php',
    success: function(data){
        // callback function
    }
});

Documentation: https://api.jquery.com/jQuery.ajax/

You could wrap the ajax call in a function and then call that function using onclick on the button you're wanting to use.

eg:

<button onclick='javascript:ajaxCall()'>Call AJAX</button>

function ajaxCall(){
    // include code above

    return false; // not always essential, but I usually return false.
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.