Long time stackoverflow user but first time poster! I recently made a very simple little browser based game, and when I say simple I cannot stress this enough.
Anyway, the entire game logic is in one little javascript file. In that file I have a variable called value, and it contains the players score.
The user at any given time during gameplay is allowed to click Submit, and this then uses a php script to access and write their username and hopefully soon their score to my database.
The problem I am having and I know quite a few people new to Ajax have had is, how do I send the value of the javascript variable value to my php page which handles sending the variables to my database?
I have read quite a bit on this and can't seem to get it working. So starting from scratch, assume I have a functioning javascript file with the value variable containing the score. How do I send the score to the php file using ajax? Where would I place the Ajax code?
Thank you stackoverflow! Also I already know that javascript resides on the client side and php runs on the server side, I just would like to know how to properly send the score to the php file, that is all! Thanks again stackoverflow!
EDIT: Because I seem to be getting down voted this is what I have but it does not work:
My Ajax:
function ajaxCall() {alert("To AJAX: the value is: " + value);
$.ajax
( {
type: "POST",
url: "handler.php",
data: {'value' : value},
success: function(response)
{ alert("The value was passed!")}
}
);};
ajaxCall();
Part of handler.php:
if(isset($_POST['value']))
{
$value = $_POST['value']."";
var_dump($value);
}
var_dump($_POST['value']);
Simply use this,
your ajax.js should contain this.
$(document).ready(function() {
$("#submitscore").click(function(event){
var user = $('#username').val();
var value = document.getElementById('yourscore').innerHTML;
$.post(
"submitscore.php",
{ username: user, score: value }
);
});
});
Your other file should have a button with the id "submitscore"
Hi, <input type="text" id="username" size="12"><br/>
Your Score is : <span id="yourscore">5000</span><br/>
<button id="submitscore">Submit Score</button>
And in that submit file, use this:
if(isset($_REQUEST['score'])||isset($_REQUEST['username']))
{
$username = $_REQUEST['username'];
$value = $_REQUEST['score'];
var_dump($value);
//Your Insertion/Updation Databse Script
}
Define a function that sets a variable. Be sure to define the variable in advance, so that it can be accessed outside of the function
function ajaxCall() {
alert("To AJAX: the value is: " + value);
var response_value; // define here or you won't be able to access it outside of success: f()
$.ajax({
type: "POST",
url: "handler.php",
data: {'value' : value},
success: function(response) {
response_value = response;
}
}
);
}
Also please don't use a semicolon after function() {}
. Sublime Text does that, still the syntax is incorrect.
Edit: I recommend you to change the PHP file to directly output a JSON file. Things to consider when doing this:
header('Content-Type: application/json; charset=utf-8');
$result_array
)$json_string = json_encode($result_array); $json_string = utf8_encode($json_string);
echo($json_string);
dataType: json
to your $.ajax() config