gpt4 book ai didi

php - 如何解码json ajax响应

转载 作者:行者123 更新时间:2023-12-05 08:59:16 25 4
gpt4 key购买 nike

我在解码 ajax 响应时遇到问题,在这里我将组织、位置和建筑物作为输入发送,作为返回,它给出了 2 个键作为入口/导出和 key ,现在我的 ajax 调用工作正常,我可以提醒响应,现在我的要求是解码我得到的 json 数组,然后将入口/导出的值放入表单中称为入口/导出的表单字段中,然后键入表单中的类型字段。我试图解码php 噬菌体中的 json 是在调用 ajax 并将 2 个值存储到 session 中时执行的,但是当我在之后给出值 =$_SESSIN[type] 和 $_SESSION[entrance/exit] 时它没有显示在表单字段中我已经尝试使用控制台使用 javascript 解码 json 脚本,任何人都可以弄清楚我做错了什么。到目前为止的代码是

 //ajax
function ajax()
{
var org=document.getElementById('category_id').value;
alert(org);
var loc=document.getElementById('category_id1').value;
alert(loc);
var bui=document.getElementById('category_id2').value;
alert(bui);
var req;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
req=new XMLHttpRequest();
}
else
{// code for IE6, IE5
req=new ActiveXObject("Microsoft.XMLHTTP");
}
req.open("POST", "ajax.php?&org="+org+"&loc="+loc+"&bui="+bui+"", true);
req.send();
req.onreadystatechange=function(){
if(req.readyState==4&&req.status==200){
//$(".error").hide();
result=req.responseText
alert(result);
var strJSON = 'result';
var objJSON = eval("(function(){return " + strJSON + ";})()");
alert(objJSON.name);
alert(objJSON.type);

}
}
}
<form name="theForm" method="post" action="addmachine.php" enctype="multipart/form-data" onSubmit="return validate();">
<label for="orgname">Organisation Name</label>
<select style="width: 305px;text-align:left ;" name="category_id" id="category_id" onchange="OrganisationName(this);">
<option value="">Select</option>
<option value="1">1</option>
<option value="2">2</option>
</select>

<p>
<label name="location">Location</label>

<select style="width: 305px;" name="category_id1" id="category_id1" onchange="LocationName(this);" >
<option value="">Select</option>
<option value="1">1</option>
<option value="2">2</option>

</select>
</p>
<p>
<label for="building">Building</label>

<select style="width: 305px" name="category_id2" id="category_id2" onchange="BuildingName(this);" onchange="ajax(this);">
<option value="">Select</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
</p>
<label for="entr/exi">Entrance/Exit</label>
<input type="text" name="ent" id="ent" value="objJSON.name" placeholder="enter entrance/exit"/>
<p>
<label for="type">Type</label>
<input type="text" name="type" value="objJSON.type" placeholder="enter your work station"/>

<label for="name">Name</label>
<input type="text" id="workstnname" name="workstnname" placeholder="enter your work station" onblur="return name();" onkeypress="return onKeyPressBlockNumbers(event);">
<label for="description">Description</label>
<textarea name="description" style="height:150px;width:300px;"></textarea>
<label for="machinetype">Machine Type</label>
<select style="width: 305px;text-align:left;" name="machinetype">
<option value="">Select</option>
<option value="kiosk">kiosk</option>
<option value="workstation">workstation</option>

</select>
<p>
<input type="submit" name="submit" value="Submit">
</p>

</form>
</div>

我没有得到键的值 entance 或 exit 和类型我得到响应并收到警报的 json 是

[{"name":"Default Entrance + Exit","type":"both"}]

我不知道我是否在代码中犯了一些错误,因为我只开始使用 javascript谢谢

最佳答案

出于安全和工作流程的原因,最好通过 JSON.parse

解析 json
var objJSON = JSON.parse(strJSON);

不是通过eval

关于php - 如何解码json ajax响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15924744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com