У меня PHP работает на сервере, и я вызываю его через jQuery.Ajax()
но он всегда возвращается к части ошибки.
Если я вызываю адрес PHP непосредственно из своего браузера, я получаю ответ, который мне нужен, он только разбивается на вызов jQuery.
PHP (просто говоря):
<?php if(isset($_GET['getcodenode'])) { echo json_encode ( array ( 'itens'=> array ( 0=>array('id'=>100,'lb'=>'300','ds'=>'300 mm'), 1=>array('id'=>105,'lb'=>'400','ds'=>'400 mm') ) ) ); die(); } ?>
И на стороне javascript я вызываю его так:
<html> <head> <script type="text/javascript"> function loadcall(data) { jQuery.ajax({ async:false, method:'POST', crossDomain:true, dataType:'jsonp', url:'http://example.com/ajax.php?getcodenode', data:{'arg':data}, success:function(result){ var ret=JSON.parse(result); var el=jQuery('#abc'); for(en in ret.itens) { el.Append('<div id="item_'+en.id+'">'+en.lb+', '+en.ds+'</div>'); } }, error:function(result){alert('Error (loadcall)');} }); } </script> </head> <body> <div id="abc"></div> </body> </html>
В вашем коде есть много комментариев :
Код тестирован с некоторыми комментариями:
<script type="text/javascript"> loadcall("test"); // as pointed you need to call the function so it runs function loadcall(data) { $.ajax({ async: true, method: 'POST', crossDomain: true, dataType: 'json', //your data type should be JSON not JSONP url: 'page.php?getcodenode', data: { 'arg': data }, success: function(result) { console.log(result); // see attached image how to get the path for object var ret = result; var el = $('#abc'); for (en in ret.itens) { console.log(ret.itens[en].ds); el.append('<div id="item_' + ret.itens[en].id + '">' + ret.itens[en].lb + ', ' + ret.itens[en].ds + '</div>'); } }, error: function(result) { console.log(result); } }); } </script>
object path
мере необходимости в коде. вам нужно вызвать loadcall (data)
<html> <head> <script type="text/javascript"> function loadcall(data) { jQuery.ajax({ async:false, method:'POST', crossDomain:true, dataType:'jsonp', url:'http://example.com/ajax.php?getcodenode', data:{'arg':data}, success:function(result){ var ret=JSON.parse(result); var el=jQuery('#abc'); for(en in ret.itens) { el.Append('<div id="item_'+en.id+'">'+en.lb+', '+en.ds+'</div>'); } }, error:function(result){alert('Error (loadcall)');} }); } loadcall('somethingData') </script> </head> <body> <div id="abc"></div> </body> </html>