У меня возникают проблемы с чтением ответа Json_encode в java-скрипте.
Файл PHP считывает значения из базы данных и отправляет результаты в виде массива Json_encode в html.
<?php include("connect.php"); try { $conn = new PDO("mysql:host=$servername;dbname=mydb", $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "Call print_awb (@output1,@output2,:input_awb_ref_id)"; if (isset($_POST)) { $p_in_awb_ref_id =reset($_POST["var_p_in_awb_ref_id"]); } $stmt = $conn->prepare($sql); $stmt->bindParam(':input_awb_ref_id',$p_in_awb_ref_id, PDO::PARAM_INT); $stmt->execute(); $out_awb_ref_id = $conn->query("SELECT @output1")->fetch(PDO::FETCH_ASSOC); $out_agent_id = $conn->query("SELECT @output2")->fetch(PDO::FETCH_ASSOC); $output = array( "out_awb_ref_id" => $out_awb_ref_id, "out_agent_id" => $out_agent_id, ); echo json_encode($output); $stmt->closeCursor(); } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); } ?>
<script type="text/javascript"> function get_parameters(){ var quote = ABCD1234; quote.toString(); window.alert(quote); $.ajax({ type: "POST", url: "printawb.php", data: {var_p_in_awb_ref_id:quote}, dataType: "text", success: function (result) { alert(result); var a = result.out_awb_ref_id; alert (a); alert(result['out_awb_ref_id']); alert(result['out_agent_id']) }, error:function (jqXHR, status, err){ //Fail layer_1.html(html); } }); return vars; }; </script>
HVP000062
{"out_awb_ref_id": {"@ output1": "MIR"}, "out_agent_id": {"@ output2": "rtPreston"}} undefined undefined
All Need – это значения во второй строке результата, т. Е. «МИР» и «РТПРЕСТООН»
Я попробовал пару вещей: 1. изменил тип вызывающей функции как «JSON», но ответ был «Object» без значений. 2. Пробовал преобразование в jsonString 3. пытался считывать значения с использованием JSON.parse (jsonString); 4. result ['out_ref_awb_id']
Ни один из них не работает. Может ли кто-нибудь помочь мне, как я могу получить эти ценности? Затем я могу использовать их для заполнения на html-странице.
Большое спасибо
Добавьте это как первую строку в разделе HEAD вашего шаблона HTML
<meta content="text/html;charset=utf-8" http-equiv="Content-Type"> <meta content="utf-8" http-equiv="encoding">
Затем попробуйте этот код:
<script type="text/javascript"> function get_parameters(){ var quote = ABCD1234; quote.toString(); window.alert(quote); $.ajax({ type: "POST", url: "printawb.php", data: {var_p_in_awb_ref_id:quote}, dataType: "text", success: function (result) { var data = jQuery.parseJSON(result); var param1 = data.out_agent_id; var param2 = data.out_awb_ref_id; alert(param1["@output2"]); alert(param2["@output1"]) }, error:function (jqXHR, status, err){ //Fail layer_1.html(html); } }); return vars; }; </script>