2016-08-15 10 views
0

私は、HTMLのコードを持っている:

HTML:AJAX呼び出しは、ワンクリックで作業していない

<div id="all" aria-expanded="true">all</div> 

と私はこのdiv要素がクリックされた、AJAX呼び出したい:

AJAXを:

$("#all").click(function() { 

    $("#adv-article-list").empty(); 
    $("#adv-article-list-pagination").empty(); 
    $.ajax({ 
     url: 'ajax_index.php', 
     type: "POST", 
     dataType:'json', 
     data: {name: 1}, 
     success: function(data) 
     { 
      arr_db=data; 
     } 
    }); 
    function(arr_db); 
}) 

私のコードは正しく動作しましたが、正しく動作しませんでしたクリックしてください。私はdivを2回クリックしなければなりません。 なぜですか?

PHP:

$userAnswer = $_POST['name']; 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname="db"; 

$conn = new mysqli($servername, $username, $password, $dbname); 
$conn->query("SET NAMES 'utf8'"); 

if (!$conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 

$result = $conn->query("SELECT * FROM wp_moeee ORDER BY ID DESC"); 
$ar=array(); 

while ($row = mysqli_fetch_assoc($result)){ 
    $ar[] = $row; // add the row in to the results (data) array 
} 

echo json_encode($ar); 
+2

成功コールバックは非同期なので、arr_dbの割り当てはまだ行われていません – aw04

+3

確かにhttp://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-anをチェックしてください-asynchronous-call – HiDeo

+0

'function(arr_db);とは何ですか? – adeneo

答えて

0

jQuery $.ajax requestは、デフォルトでは非同期であるため。

非同期(デフォルト:真)型:Booleanデフォルトでは、すべての要求が(すなわち、これはデフォルトでtrueに設定されている)非同期 に送信されます。 同期要求が必要な場合は、このオプションをfalseに設定します。

あなたはそれを変更することがありますが:同期要求を一時的にリクエストがアクティブである間 は、任意のアクションを無効にし、ブラウザをロックすることが

注意を。

初めてあなたはこの問題が発生したイベントをクリックしてトリガ:

  • function(arr_db);がまだ設定されていないarr_dbで実行されているよりも、AJAXリクエストが送信されてきた

    1. AjaxのレスポンスはjQueryのsuccessコールバックをトリガおよびarr_db=data;

    セコンあなたがイベントをクリックトリガD時間:

    1. 二AJAXリクエストはarr_dbを使用して、
    2. function(arr_db);が実行されているよりも、送られてきた最初の応答から
    3. 二AjaxのレスポンスはjQueryのsuccessコールバックをトリガし、arr_db=data;
  • +0

    tanxたくさん。 私はasyncをfalseに変更しました。 –

    +0

    実際には、非同期のajaxコールを維持し、応答を待つ間にいくつかのスピナーを表示し、 'success' ajaxコールバック関数の中に' function(arr_db) 'を入れてください。それはプログラマーが通常行く方法です。 – skobaljic

    関連する問題