简体   繁体   English

使用jQuery从网址获取多个数据

[英]Get multiple data from url using jQuery

I have this code for a table: 我有一个表的代码:

<table class="table table-hover">
                          <thead>
                          <tr>
                              <th>ID Komponen</th>
                              <th>Nama Komponen</th>
                              <th>Ekuivalen SKS</th>
                              <th>Ekuivalen Jam</th>
                              <th>Indikator</th>
                          </tr>

                          </thead>
                          <tbody id="badan_tabel" >

                          </tbody>
                      </table>

and the jQuery code: 和jQuery代码:

  <script > function init() { $.get("http://paramadina.net:18011/data/psc_komponen", {id:1}, function(data) { console.log(data); var tr="<tr><td>" + data.id + "</td>"; tr += "<td>" + data.nama_komponen + "</td>"; tr += "<td>" + data.ekuivalen_sks + "</td>"; tr += "<td>" + data.ekuivalen_jam + "</td>"; tr += "<td>" + data.indikator + "</td></tr>"; $("#badan_tabel").append(tr); }); } </script> 

as you see I get the data by per id {id:1}. 如您所见,我通过每个ID {id:1}获取数据。 It has about 20 data and I want to put it all into the table. 它有大约20个数据,我想全部放入表中。 I don't know how to call all data id at once 我不知道如何一次调用所有数据ID

  <script > function init() { for(x=1;x<=20;x++) { $.get("http://paramadina.net:18011/data/psc_komponen", {id:x}, function(data) { console.log(data); var tr="<tr><td>" + data.id + "</td>"; tr += "<td>" + data.nama_komponen + "</td>"; tr += "<td>" + data.ekuivalen_sks + "</td>"; tr += "<td>" + data.ekuivalen_jam + "</td>"; tr += "<td>" + data.indikator + "</td></tr>"; $("#badan_tabel").append(tr); }); } } </script> 

Can't you get a JSON array response, instead of hammering this poor webserver 20 times in a row ? 您能否获得JSON数组响应,而不是连续20次锤击这个可怜的Web服务器?

[
    {
        "id": 1,
        "nama_komponen": "Tugas Belajar",
        "ekuivalen_sks": 17,
        "ekuivalen_jam": 40,
        "indikator": "Surat Tugas|Surat Kontrak"
    },
    {
        "id": 2,
        "nama_komponen": "Penelitian",
        "ekuivalen_sks": 6,
        "ekuivalen_jam": 24,
        "indikator": "Surat Tugas"
    }, 
    {
        "id": 3,
        "nama_komponen": "Tugas Belajar",
        "ekuivalen_sks": 17,
        "ekuivalen_jam": 40,
        "indikator": "Surat Tugas|Surat Kontrak"
    }, 

    etc ...
]

I'm not sure how to you getting the data, but here is something that worked 我不确定如何获取数据,但是这里有些工作

<?php
//data from database usually in this format
//pass the id to your db query here, 
//e.g if you use function $a = $_GET['id'];
// $data = call_user_function('function_name',$a);
$data = array(array("id"=> 1,  "nama_komponen"=>"Tugas Belajar",    "ekuivalen_sks"=> 17,"ekuivalen_jam"=>40, "indikator"=> "Surat Tugas|Surat Kontrak"), 
        array("id"=> 2, "nama_komponen"=>"Tugas 22Belajar", "ekuivalen_sks"=> 172,  "ekuivalen_jam"=>40,  "indikator"=> "Surat Tugas|Surat Kontrak"));

//convert 
foreach($data as $dat):
    $a = $dat['id'];
    $b = $dat['nama_komponen'];
    $c = $dat['ekuivalen_sks'];
    $d = $dat['ekuivalen_jam'];
    $e = $dat['indikator'];
    $json[] = array("id"=>$a, "nama_komponen"=>$b, "ekuivalen_sks"=>$c, "ekuivalen_jam"=>$d, "indikator"=> $e);
endforeach;
header("Content-type: application/json");
echo json_encode($json);
?>

the output of the abouve in the console is 控制台中abouve的输出是

[object, object]

So your script will to give desired output is 所以您的脚本将给出所需的输出是

<script>
$(function() {
$.get("ajax.php", {id:1}, function(data) {
        console.log(data);
        $.each(data, function (index, value) {        

             tr="<tr><td>" + value.id + "</td>";
                tr += "<td>" + value.nama_komponen + "</td>";
                tr += "<td>" + value.ekuivalen_sks + "</td>";
                tr += "<td>" + value.ekuivalen_jam + "</td>";
                tr += "<td>" + value.indikator + "</td></tr>";
                $("#badan_tabel").append(tr);
        });

});
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM