jQueryを使用してデータベーステーブルに新しいデータを追加しています。それから私はそのテーブルからすべてのコンテンツを取得しています。問題は、間違った配列のサイズがすべての奇妙なtime.If私はページをリフレッシュする場合、それは正しい配列のサイズを取得していますが、私はjQuery関数を使用してボタンをクリックしているすべてが台無しだ。jQueryとmysqli_num_rows()で配列の長さが正しくない
私は
$n = mysqli_num_rows($result);
はすでにここで行
の間違ったNUMを返すことを考え出すはスクリプトです:
function getall(){
$link = db_connect();
$query= "SELECT * FROM jq";
$result = mysqli_query($link,$query, MYSQLI_STORE_RESULT);// Smart people said MYSQLI_STORE_RESULT should help but it didn't
$n = mysqli_num_rows($result);
for($i = 0 ;$i<$n;$i++)
{
$row=mysqli_fetch_assoc($result);
$b[]=$row;
}
echo json_encode(array($b));
}
function addstatic(){
$link = db_connect();
$statin_Entry = "Static Entry";
$query = "INSERT INTO jq (Entry) VALUES ('$statin_Entry')";
$result = mysqli_query($link,$query);
}
if(isset($_GET['action']) && !empty($_GET['action'])) {
$action = $_GET['action'];
switch($action) {
case 'getall' : getall(); break;
}
}
else {
if(isset($_POST['action']) && !empty($_POST['action'])) {
$action = $_POST['action'];
switch($action) {
case 'addstatic' : addstatic();break;
case 'removelast' : removelast();break;
// ...etc...
}
}
}
:
$(document).ready(function(){
$.getallentries = function(){
$.getJSON("entries.php",{action : "getall"},function(data) {
var content_array = $.map(data, function(e) { return e;});
console.log(content_array.length); // to check array size
});
$.addstatic = function(){
$.post("entries.php",{action : "addstatic"});
};
};
$("#adds").on("click",function(){
$.addstatic();
$.getallentries();
});
$.getallentries();
そして、ここではentries.phpです
この問題は再び同じ配列サイズ143,146,151と156はどこですか?
'$ .addstatic()'のAJAX呼び出しが完了する前に '$ .getallentries()'を呼び出しているので、データベースはまだ更新されていません。 AJAXは非同期であることを覚えておいてください。 – Barmar
コードを正しくコピーしましたか? '$ .addstatic'の定義は本当に' $ .getallentries'の定義の中にあるはずですか? – Barmar
あなたがMYSQLI_STORE_RESULTについてあなたに言ったソメンはあまりスマートではありません –