Reputation: 409
After I have executed a AJAX action I want to refresh my modal, but I don't know how. I've spent way too much time on this problem.
In the page ViewCharacter.php, you'll get to see a page with the latest data, and you get to click a pencil button "#ButtonEditCharacterStats" to edit the stat, then it will open up a modal for you with the latest data. When you click the button "plus 1" button (#StrengthPlusOne) it will increment that number by 1, but after that I want to close the modal, load it up again and show the most recent data.
Or perhaps a better solution would be to keep the modal open en load the contents of the modal. Ican't seem to find a solution for this.
Any ideas to further improve this script will be greatly appreciated.
ViewCharacter.php
<?php
$Character = new Character;
$Character->getSingleCharacter();
$result = $Character->getSingleCharacter();
?>
<h2>Character</h2>
<?php
while ($Character = $result->fetch_object())
{
?>
<h3><?php echo $Character->FirstName ?></h3>
</br>
<div class="row">
<div class="col-xs-6">
<div class="panel panel-default">
<div class="panel-heading">
Stats
</div>
<div class="panel-body">
<ul class="nav nav-pills" role="tablist">
<li role="presentation" class="active">
<button id="ButtonEditCharacterStats" style="" data-toggle="modal" data-target="#EditCharacterStats" class="ToolbarButton glyphicon glyphicon-pencil fa-2x"></button>
</br></br>
<a href="#">Strength <span class="badge"><?php echo $Character->Strength; ?></span><span class="badge"><?php echo $Character->StrengthBonus; ?></span></a></br>
<a href="#">Dexterity <span class="badge"><?php echo $Character->Dexterity; ?></span><span class="badge"><?php echo $Character->DexterityBonus; ?></span></a></br>
<a href="#">Constitution <span class="badge"><?php echo $Character->Constitution; ?></span><span class="badge"><?php echo $Character->ConstitutionBonus; ?></span></a></br>
<a href="#">Intelligence <span class="badge"><?php echo $Character->Intelligence; ?></span><span class="badge"><?php echo $Character->IntelligenceBonus; ?></span></a></br>
<a href="#">Wisdom <span class="badge"><?php echo $Character->Wisdom; ?></span><span class="badge"><?php echo $Character->WisdomBonus; ?></span></a></br>
<a href="#">Charisma <span class="badge"><?php echo $Character->Charisma; ?></span><span class="badge"><?php echo $Character->CharismaBonus; ?></span></a></br>
</li>
</ul>
</div>
<?php
}
?>
<div class="panel-footer">
Stats
</div>
</div>
</div>
<div class="col-xs-6">
<div class="panel panel-default">
<div class="panel-heading" style="background-color: #d9534f;color:white;">
Stats
</div>
<div class="panel-body">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum tincidunt est vitae ultrices accumsan. Aliquam ornare lacus adipiscing, posuere lectus et, fringilla augue.</p>
</div>
<div class="panel-footer">
Stats
</div>
</div>
</div>
</div>
<script>
$(document).ready(function () {
//$("#StrengthPlusOne").click(function()
$("#StrengthPlusOne").on("click", function ()
{
$.ajax({
method: "POST",
url: "inc/view/Character/UpdateCharacterStat.php",
data: {
ID: "2",
stat: "Strength",
Operator: "Increase"
}
})
.done(function (msg) {
alert("Data Saved: " + msg);
});
});
});
$("#StrengthMinusOne").click(function () {
alert("-1");
});
</script>
EditCharacterModal.php
<?php
$Character = new Character;
$Character->getSingleCharacter();
$result = $Character->getSingleCharacter();
while ($Character = $result->fetch_object()){?>
</br>
<div id="EditCharacterStats" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="panel-body">
<div id="EditCharacterStatsContent">
<h3>Edit Character Stats</h3>
<ul class="nav nav-pills" role="tablist">
<li role="presentation" class="active">
</br></br>
<a href="#">
Strength
<span class="badge"><?php echo $Character->Strength; ?>
</span>
<button id="StrengthPlusOne" class="SmallToolbarButton glyphicon glyphicon-plus-sign fa-1x"> 1</button>
<button id="StrengthMinusOne" class="SmallToolbarButton glyphicon glyphicon-minus-sign fa-1x"> 1</button>
</a>
</br>
<a href="#">
Strength Bonus
<span class="badge"><?php echo $Character->StrengthBonus; ?></span>
</a></br>
<a href="#">
Dexterity
<span class="badge"><?php echo $Character->Dexterity; ?></span>
<span class="badge"><?php echo $Character->DexterityBonus; ?></span>
</a></br>
<a href="#">
Constitution
<span class="badge"><?php echo $Character->Constitution; ?></span>
<span class="badge"><?php echo $Character->ConstitutionBonus; ?></span>
</a></br>
<a href="#">Intelligence
<span class="badge"><?php echo $Character->Intelligence; ?></span>
<span class="badge"><?php echo $Character->IntelligenceBonus; ?></span></a></br>
<a href="#">
Wisdom
<span class="badge"><?php echo $Character->Wisdom; ?></span>
<span class="badge"><?php echo $Character->WisdomBonus; ?></span>
</a></br>
<a href="#">Charisma
<span class="badge"><?php echo $Character->Charisma; ?></span>
<span class="badge"><?php echo $Character->CharismaBonus; ?></span>
</a></br>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<?php
}
UpdateCharacterStat.php
<?php
$Stat = filter_input(INPUT_POST, 'Stat');
include "../../../inc/dbconnect.php";
$sql = "UPDATE TBL_Character SET Strength= Strength + 1 WHERE ID=2";
echo "Strength increase selected!";
if ($connection->query($sql) === TRUE) {
} else {
echo "Error updating record: " . $connection->error;
}
Upvotes: 4
Views: 1349
Reputation: 49
You should start by creating a page called getCharacterStats.php
. Then use javascripts XMLHTTPREQUEST
to load the data once it has been updated.
Upvotes: 1