Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Melewati array dari PHP ke Javascript menggunakan JQuery &JSON

Saya pikir PHP Anda mengembalikan kesalahan, daripada JSON yang Anda harapkan. Karena Anda memiliki dataType: 'json' , jQuery mencoba mengurai respons, tetapi gagal. Ketika itu terjadi, jQuery tidak memanggil success panggilan balik.

Jika Anda bisa, gunakan Firebug untuk melihat apa yang dikembalikan oleh panggilan ajax. Cara lain adalah dengan mengubah sementara ke dataType: 'html' lalu ubah success panggilan balik ke:

success: function(msg) { alert(msg); }

Mudah-mudahan ketika Anda melihat pesan yang dikembalikan, itu akan membantu mengidentifikasi masalah. Satu hal yang harus Anda lakukan adalah menambahkan kode untuk menangani kasus di mana kueri gagal dijalankan dan tidak ada baris yang diambil dari database. Anda dapat menambahkan kode berikut ke file PHP:

$result = mysql_query($query, $con);

if (!$result) {
    die('Could not run query: ' . mysql_error($con));
}

if (mysql_num_rows($result) < 1) {
    echo 'null';
    exit;
}

$data = mysql_fetch_row($result);

Ada juga beberapa masalah dengan panggilan Ajax:

(1) Anda menentukan contentType: "application/json; charset=utf-8" , tetapi kemudian Anda tidak mengirim JSON. Anda harus melakukan sesuatu seperti ini:

data: JSON.stringify({}),

Tetapi jika Anda melakukan ini, Anda tidak bisa mendapatkan data di server menggunakan $_POST fungsi. Oleh karena itu, Anda mungkin ingin menyingkirkan contentType pengaturan sebagai gantinya. Lihat Jawaban BENAR untuk informasi lebih lanjut.

(2) Saat Anda menentukan dataType: 'json' , JQuery akan mengurai respons ke objek sebelum memanggil panggilan balik yang berhasil, jadi msg parameter harus sudah menjadi objek. Oleh karena itu, Anda tidak boleh memanggil JSON.parse(msg) .

(3) Anda mengembalikan array asosiatif dari file PHP. Itu akan dikonversi menjadi objek JavaScript, bukan array.

Saya pikir Anda harus mencoba yang berikut ini:

$.ajax('refreshData.php', {
    type: 'post',
    dataType: 'json',
    data: { },
    cache: false,
    success: function (data) {
        if (data) {
            $('#interface_stats').html('Fatigue: ' + data.fatigue);
        }
    }
});



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan fatal:[] operator tidak didukung untuk string

  2. Memuat kelas com.mysql.jdbc.Driver ... adalah pesan yang tidak digunakan lagi

  3. Dua indeks kolom tunggal vs satu indeks dua kolom di MySQL?

  4. MySQL Anda menggunakan mode pembaruan aman dan Anda mencoba memperbarui tabel tanpa WHERE

  5. Lacak skrip perubahan/revisi di PHP?