#javascript #jquery #ajax
#javascript #jquery #ajax
Вопрос:
у меня проблема с ajax на той же странице. это мой код :
$.ajax({
type: "POST",
url: "test.php",
dataType: 'json',
data: {},
success: function (data) {
console.log(data);
var teks = "";
$.each(data.detail, function (index, val) { //looping table detail bahan
var no = val.no;
var tanggal = val.tanggal;
var jml_in = val.barang_in;
var jml_out = val.barang_out;
var pihak_zenitha = val.pihak_zenitha;
var pihak_vendor = val.pihak_vendor;
teks = "<tr class='tr_detail'><td>" no
"</td><td>" tanggal
"</td><td>" jml_in
"</td><td>" jml_out
"</td><td>" pihak_zenitha
"</td><td>" pihak_vendor
"</td></tr>";
});
$(".tbody_target").append(teks);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class="table" style="border: 1px solid #000;">
<thead>
<tr>
<th class="w2 text-center">No</th>
<th class="w8 text-left">Tanggal</th>
<th class="w10 text-center">IN Zenitha</th>
<th class="w10 text-center">OUT Zenitha</th>
<th class="w35 text-left">Pihak Zenitha</th>
<th class="w35 text-left">Pihak Vendor</th>
</tr>
</thead>
<tbody class="tbody_target">
</tbody>
</table>
<?php
//data convert to json
exit(json_encode($return));
?>
я много раз пытался, но это не работает и не показывает ошибку. а в консоли ничего не показывать. пожалуйста, помогите мне. это меня смущает.. спасибо, ребята………………………………………………..
Ответ №1:
Вы уверены, что этот вызов ajax выполнен? Куда вы это поместили?
Попытайтесь
console.log('here!');
Прямо перед вашим вызовом ajax, я предполагаю, что он не доходит до этой строки.
Поместите их в известное вам место, где они будут запущены, или в обратный вызов document ready
$(document).ready(function () { ...HERE... });
Ответ №2:
Во-первых, вы должны обернуть свой код в ready
.
Ajax
$(document).ready(function(){
$.ajax({
url: "test.php",
type: "POST",
data: {'isAjax': 'yes'},
success: function (data) {
console.log(data);
$(".tbody_target").append(data);
}
});
});
PHP-КОД
if(!empty($_POST))
{
//data convert to json
$return = [1,2];
echo json_encode($return);
exit;
}
На что следует обратить внимание:
- У Ajax должны быть данные POST, чтобы определить, что необходимо вернуть данные.
$_POST
данные должны быть в первой строке PHP.- Используется
echo
для возврата данных в Ajax-запрос иexit()
для остановки выполнения при вызове ajax.
Комментарии:
1. я делаю с
$(document).ready(function () { ...HERE... });
и делаюasync:false
. console. журнал ничего не показывает. пожалуйста, смотрите полный код jsfiddle2. преобразование данных в json в порядке, я проверяю это в jsonlint
3. Вам нужно объявить переменную массива
$return = [];
перед циклом while, чтобы использовать ее после цикла while. Обновлено jsfiddle.net/tubuc90v/24. все те же ребята
5. я ничего не вижу в консоли. войти, но, если я изменю тип данных на
text
. это отображение полной страницы в console.log
Ответ №3:
<?php
if(!empty($_POST)){
//connect to db or do what ever to retern
// $return = JSON
header('Content-type: application/json');
echo json_encode($return);
}else{
?>
<!DOCTYPE html>
<html>
<head>
<title>ajax call</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<table class="table" style="border: 1px solid #000;">
<thead>
<tr>
<th class="w2 text-center">No</th>
<th class="w8 text-left">Tanggal</th>
<th class="w10 text-center">IN Zenitha</th>
<th class="w10 text-center">OUT Zenitha</th>
<th class="w35 text-left">Pihak Zenitha</th>
<th class="w35 text-left">Pihak Vendor</th>
</tr>
</thead>
<tbody class="tbody_target">
</tbody>
</table>
<script>
$.ajax({
type: "POST",
url: "test.php",
dataType: 'json',
data: {},
success: function (data) {
console.log(data);
var teks = "";
$.each(data.detail, function (index, val) { //looping table detail bahan
var no = val.no;
var tanggal = val.tanggal;
var jml_in = val.barang_in;
var jml_out = val.barang_out;
var pihak_zenitha = val.pihak_zenitha;
var pihak_vendor = val.pihak_vendor;
teks = "<tr class='tr_detail'><td>" no
"</td><td>" tanggal
"</td><td>" jml_in
"</td><td>" jml_out
"</td><td>" pihak_zenitha
"</td><td>" pihak_vendor
"</td></tr>";
});
$(".tbody_target").append(teks);
}
});
</script>
</body>
</html>
<?php
}
?>