Home > Back-end >  Undefined value document.getElementById
Undefined value document.getElementById

Time:05-11

i have a problem right here. i want to make a web service requestor using provider that i already make. the problem is i always getting undefined values for ID, Kab, and ID2. can someone help me fix the code in requestor?

this is the provider

$sql="SELECT * FROM mytable";
$query = mysqli_query($con, $sql);
$result = array();
while($row = mysqli_fetch_array($query)){
    array_push($result, array(
        'IDKabupaten' => $row['IDKabupaten'],
        'Kabupaten' => $row['Kabupaten'],
        'attribut' => array(
            0 => array(
                'IDProvinsi' => $row['IDProvinsi']
            )
        )
    ));
}
echo json_encode(array('mytable' => $result));
?>

this is the requestor

<script type="text/javascript">
    $.getJSON("http://localhost/json2/wsp_coba2.php", function(result){
        console.log(result);
        $.each(result,function(i)
        {
            document.getElementById("DataKabupaten").innerHTML  ="ID :"   result[i].IDKabupaten  "<br>Kab :"   result[i].Kabupaten 
             "<br>ID2 :"   result[i].IDProvinsi   "<br><br>";
        });
    });
</script>

im getting

ID : undefined
Kab : undefined
ID2 : undefined

CodePudding user response:

const result = { "mytable": [ { "IDKabupaten": "3301", "Kabupaten": "CILACAP", "attribut": [ { "IDProvinsi": "33" } ] }, { "IDKabupaten": "3302", "Kabupaten": "BANYUMAS", "attribut": [ { "IDProvinsi": "33" } ] } ] };
$.each(result.mytable,function(i) {
  console.log(result.mytable[i].IDKabupaten);
  $.each(result.mytable[i].attribut, function (j) {
    console.log(result.mytable[i].attribut[j].IDProvinsi)  
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

you can check it

CodePudding user response:

Try this...

$.each(result,function(i)
        {
            document.getElementById("DataKabupaten").innerHTML  ="ID :"   result[i].IDKabupaten  "<br>Kab :"   result[i].Kabupaten 
             "<br>ID2 :"   result[i].IDProvinsi   "<br><br>";
        });
result.forEach((singleResult, index) => {
// and then do your thing here. I don't use jquery but I took a quick look at their docs and your loop doesn't look right. This is the same function that jquery is calling under the hood.
})

Delete your code... I only left it in there so you could compare.

  • Related