ボタンを押してページの内容を更新すると、データベースのptsフィールドを追加または減算しようとしていますが、オートリフレッシュするときはAjax
のタイマーで表示中です。php関数のボタンがajax呼び出しの後に動作しない
私はページを呼び出すために、このスクリプトを使用しています:私は、このボタンをクリックし、現在唯一の方法を呼び出す作るとき
$(document).ready(function(){
var timer, delay = 1000; // 1 second(s) counted in milliseconds
var Pts = ''; //ID value of users answer
var info = {'userPts': Pts}; //naming POST for php
timer = setInterval(function(){
$.ajax({
url: "inc/ans.php", //sends to ans page where php function updates DB
type: "POST",
data : info, //stuff being sent to php
success:function(data)
{
$("div #ans").html(data); //Retrieves answers made by user
}
});
}, delay);
私の問題は、手動でページ全体を更新することですし、私のことができますよボタンをクリックし、ユーザーのpts値を更新します。私はどちらか一方を行うことができますが、同時にではなく、コンテンツを自動更新する場所に持っていますが、ボタンを押してアクションを完了させることはできません。ボタンを押すことができますが、コンテンツを自動更新することはできません。加算および減算する
PHP
機能はほぼ同じ、彼らはこのようにされている2つの機能間
function addPoint($mysqli, $id)
{
$stmt = $mysqli->prepare('
UPDATE tbl_user
SET user_pts = user_pts + 1
WHERE user_id = ?');
$stmt->bind_param('i', $id);
$stmt->execute();
$rows = $stmt->affected_rows;
$stmt->close();
if($rows == 1)
{
return true;
}
else
{
return false;
}
}
唯一の違いは、その-1または+1事実です。なぜこのようなことが起こるかについてのアイディアこれはAjax
と呼ばれ、これはPHP
関数またはvicと干渉しています。その逆?
EDIT:これは、ボタン
function getScore_I($mysqli)
{
$stmt = $mysqli->prepare('
SELECT user_name, user_pts, user_id
FROM tbl_user');
$stmt->execute();
$stmt->bind_result($user, $pts, $id);
$O ="";
$x = 1;
$O.="<table style=\"text-align:center;width: 100%\"><form action=".$_SERVER['PHP_SELF']." method=\"POST\">";
while($stmt->fetch())
{
if($x%2)
{
$O.= "<tr style=\"text-align:center;width: 100%\">
<td>".$user."</td>
<td>
<button name=\"userIDmiunus\" type=\"submit\" value=\"".$id."\">-</button>
</td>
<td>".$pts."</td>
<td>
<button name=\"userIDplus\" type=\"submit\" value=\"".$id."\">+</button>
</td>
</tr>";
$x++;
}
else
{
$O.= "<tr style=\"text-align:center;width: 100%\">
<td>".$user."</td>
<td>
<button name=\"userIDmiunus\" type=\"submit\" value=\"".$id."\">-</button>
</td>
<td>".$pts."</td>
<td>
<button name=\"userIDplus\" type=\"submit\" value=\"".$id."\">+</button>
</td>
</tr>";
$x++;
}
}
$O.= "</form></table>";
// close statement
$stmt->close();
return $O;
}
なぜあなたはタイマーを使うのですか....あなたは、AJAX経由でPHPの関数を実行しますか? Clicked?...はいの場合、タイマーの代わりにclickイベントを使用してみてください。 –
私はちょうど答えがデータベースに追加されたとき、またはインストラクター側で新しいpts値が割り当てられるときに彼が自動的に彼のページを更新する固定タイマーを持ってほしいスーパーユーザー、あなたがそうであれば、1をasigning pts – Apparatus17