我一直在搞砸这个应用程序:
赌博.php:
function gamble() {
$chance = rand(1, 100);
if ($chance <= 40) {
echo "win";
} else {
echo "lose";
}
}
gamble();
.HTML:
<button type="button" class="btn">Click Me</button>
j查询:
$(document).ready(function() {
$(".buy_btn").click(function() {
$.ajax({
type: 'POST',
url: 'scripts/gamble.php',
success: function(data) {
if (data == "win") {
alert("You win");
} else {
alert("You lose");
}
}
});
});
});
为什么这个 if/else 语句不起作用?
它的设置完全像JavaScript if/else语句应该有的样子,是因为它是jQuery/AJAX吗?我该如何解决它?
我还有一个问题:
在 PHP 文档中,我可以返回数据,而不是回显。 但是,如何在 AJAX 中使用此返回的数据?
我尝试使用 if/else 语句根据返回的数据执行动态事件,但它不起作用。
简单类型:
$(".buy_btn").click(function() { // You called script on this.
应该是
$(".btn").click(function() { // This is actual class of the element.
否则,代码很好。
此外,您还可以按如下方式优化gamble()
功能:
function gamble() {
echo (rand(1, 100) <= 40) ? 'win' : 'lose';
}
实施的建议:
1) $chance只使用一次,所以我们可以使用 rand(1, 100) 代替$chance。
2)使用三元运算符。
在 PHP 文档中,我可以返回数据,而不是回显。但是,如何在 AJAX 中使用此返回的数据?我尝试使用 if/else 语句根据返回的数据执行动态事件,但它不起作用。
请参阅通过 PHP 输出 JSON 数据并在 AJAX 回调中使用此数据,以便通过 jQuery 处理数据。你不能使用 return 语句,因为它本身不是一个 PHP 函数调用,你正在调用一个将其数据输出到 JS AJAX 调用的网页。你可以通过JSON编码(通过json_encode(数组$data))函数,它很容易阅读(并且很可能由jQuery自动解析,请参阅jQuery.ajax文档了解如何处理该回调)。
基本上,你调用 $.ajax ->浏览器向服务器发送一个请求,服务器解析查询并调用 PHP 函数 -> PHP 函数处理数据并使用 JSON 输出 ->浏览器读取 JSON 输出,jQuery 将其解析为对象数据 ->将其传递给您进行处理的回调函数。
你的代码是对的...只需要记住一件小事...
赌博.php:
<?php
function gamble() {
$chance = rand(1, 100);
if ($chance <= 40) {
echo "win";
exit; //line added
} else {
echo "lose";
exit; //line added
}
}
gamble();
?>
.HTML:
<button type="button" class="btn">Click Me</button>
jquery:
<script type="text/javascript">
$(document).ready(function() {
$(".btn").click(function() {
$.ajax({
type: 'POST',
url: 'scripts/gamble.php',
success: function(data) {
if (data == "win") {
alert("You win");
} else {
alert("You lose");
}
}
});
});
});
</script>
每当你想要通过ajax做出任何响应时,如果你想使用echo
那么不要忘记添加exit
使用上面给定的代码,单击按钮后肯定会出现警报..是的,我还在jquery中使用了与HTML代码中按钮相同的类...祝你好运
我通过将输出更改为数字来修复它:
脚本.php:
if ($chance <= $win_c) {
echo 0;
} else {
echo 1;
}
javaScript:
<script type="text/javascript">
$(document).ready(function() {
$(".buy_btn").click(function() {
$.ajax({
type: 'POST',
url: 'scripts/gamble.php',
success: function(data) {
if (data == 0) {
alert("You win!");
} else if (data == 1) {
alert("You lose");
}
}
});
});
});
</script>
为什么它需要一个数字而不是一个字符串才能工作?我尝试使用字符串();将其转换为纯字符串,但是这也不起作用