I'm having trouble calling php scripts from Java Script and then using that result to set view bag values for my controller. Here is the code behind:
<script>
var model = '<% = this %>';
var data = { NAMEPARAM: model.name }
$(document).ready(function () {
$("#AlertButton").click(function () {
$.ajax({
type: 'POST',
url: "www/CustomScripts.php",
data: data
}).success(function(data) {
//need to set the returned message in view bag here.
}).error(function (data) {
alert("An error occurred while processing request")
});
});
});
</script>
<button id ="AlertButton" type="submit" class="btn green"> Alert </button>
<div id="PHPResult"> @ViewBag.message </div>
The problem I'm facing above, is to set the returned success message, in my ViewBag and then showing it on the screen. I know how to directly set the result inside the html div, but I need to set it inside the Viewbag
Also the way that I'm passing the name parameter to the php script. Is that the correct way, or is there a better way to accomplish that?
I can't think of a reason to involve the ViewBag here. You're not doing a postback to MVC, so there's no way to populate it. It's a transaction between the HTML/Javascript and the PHP webservice only.
So, it's actually relatively simple:
<script>
var model = '<% = this %>';
var data = { NAMEPARAM: model.name }
$(document).ready(function () {
$("#AlertButton").click(function () {
$.ajax({
type: 'POST',
url: "www/CustomScripts.php",
data: data
}).success(function(data) {
$("#PHPResult").html(data); //assuming "data" is a user-friendly string
}).error(function (data) {
alert("An error occurred while processing request")
});
});
});
</script>
<button id ="AlertButton" type="submit" class="btn green"> Alert </button>
<div id="PHPResult"></div>