当用户单击“声明”按钮时,我想每5秒运行一次javascript函数。 在我建立此代码后,单击按钮,但是脚本不起作用。我一点都不擅长javascript。我所知道的只是一些php和mysql。
当用户单击索赔按钮时,函数send()应调用payout()函数并运行在payout()函数内部的crul()函数。 我不知道我在哪里弄错了,因为我不太了解JavaScript。
这是我建立的按钮功能。不知道是不是错了。
<button onclick="send()" class="btn-success"><i class="fas fa-exclamation-circle"></i> Claim <i class="fas fa-exclamation-circle"></i></button>
<script>
function send() {
setInterval(function(){ payout(); }, 5000);
}
</script>
这是函数payout()
function payout(){
$sql = $conn->query("UPDATE wallets SET balance = balance - 1 WHERE wallet = '$wallet' " );
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://faucethub.io/api/v1/send");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
"api_key=$apikey&to=$wallet¤cy=$shortcurrency&amount=$doge ");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
curl_close ($ch);
}
结果应该是payout()函数应该每5秒发送一次到$ wallet
答案 0 :(得分:0)
首先,您需要创建一个PHP文件并将PHP payout()
移动到php文件中。其次,您需要在javascript间隔内进行ajax调用。
payout.php
//add the following code after your connection object
function payout(){
$sql = $conn->query("UPDATE wallets SET balance = balance - 1 WHERE wallet = '$wallet' " );
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://faucethub.io/api/v1/send");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
"api_key=$apikey&to=$wallet¤cy=$shortcurrency&amount=$doge ");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
curl_close ($ch);
}
index.html
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button onclick="send()" class="btn-success"><i class="fas fa-exclamation-circle"></i> Claim <i class="fas fa-exclamation-circle"></i></button>
<script>
function send() {
setInterval(function () {
$.ajax({
type: 'POST',
url: 'payout.php',
success: function (data) {
console.log("payout attempt");
},
});
}, 3000);
}
</script>