Skip to content

Instantly share code, notes, and snippets.

@dhouk24
Forked from dbc-challenges/lucky_ajax.md
Last active December 17, 2015 08:18
Show Gist options
  • Save dhouk24/5578676 to your computer and use it in GitHub Desktop.
Save dhouk24/5578676 to your computer and use it in GitHub Desktop.
$(document).ready(function () {
$('form').submit(function(event){
event.preventDefault();
var action = $(this).attr("action");
var roll = Math.floor(Math.random()*6 + 1);
alert(roll);
$.post(action, { "value" : roll }, function(response){
$('#die').html(response)
});
});
// PSEUDO-CODE:
// 1- intercept the form submission event using jQuery
// 2- prevent the default action for that event from happening
// 3- generate a random number between 1 and 6 using JavaScript
// 4- use jQuery to submit an AJAX post to the form's action
// 5- when the AJAX post is done, replace the contents of the "#die" DIV in the DOM using jQuery
});
// var roll = $(this).attr('value');
// $.post(value, )
<div class="container">
<h1>Simplest Possible AJAX</h1>
<p>This contrived app will simulate a roll of a 6-sided die.</p>
<form method="post" action="/rolls">
<input type="submit" value="Roll the Die">
</form>
<div id="die">
</div>
</div>
<!--
# TODO: convert this route to use AJAX
post '/rolls' do
# If the user passes-in a "value", let's use it. Otherwise, we'll generate a random one.
# See: roll_if_value_is_nil method in the Roll model.
value = params[:value] ? params[:value].to_i : nil
@roll = value ? Roll.create({ value: value }) : Roll.create
erb :index # HINT: what does this do? what should we do instead?
end -->

Instructions:

  1. Download this application skeleton.
  2. Convert the app to use AJAX.
  3. Add any files you changed to your gist and submit your code.
<img src="/<%= @roll.value %>.png" title="<%= @roll.value %>" alt="the roll">
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment