gpt4 book ai didi

javascript - 下拉列表中的 Json 解析器错误

转载 作者:行者123 更新时间:2023-12-02 14:31:24 25 4
gpt4 key购买 nike

我目前正在开发一个下拉菜单,但遇到了很多麻烦。它是一个依赖的下拉列表,到目前为止,当我在第一个下拉列表中进行选择时,我可以获得正确的数据,但无法在第二个下拉列表中显示它。我知道我得到了数据,因为我在 chrome 上调试时看到了它。这是我得到的示例:

Object {readyState: 4, responseText: "{"Hardware":1,"Software":2,"Other":3,"option":10}Page generated in 0.2831 seconds.<br><br><br>", status: 200, statusText: "OK"}
parsererror
Object {readyState: 4, responseText: "{"General":5,"Books":6}Page generated in 0.2902 seconds.<br><br><br>", status: 200, statusText: "OK"}
parsererror

这是我的 JavaScript 代码:

<script type="text/javascript">
$(document).ready(function () {
$("#request_department").change(function(){
var data = {
department_id: $(this).val()
};
$.ajax({
type: 'POST',
{#url: '{{ path("select_options") }} ?category_id' + dep,#}
url: "{{ url('select_options') }}?dep_id=" + data.department_id,
data: data,

success: function(data) {
window.alert('hi');
var $option_selector = $('#request_option');

$option_selector.html('<option>Option</option>');

for (var i=0, total = data.length; i < total; i++) {
$option_selector.append('<option value="' + data[i].id + '">' + data[i].option + '</option>');
}
},
error: function(xhr, error){
console.debug(xhr); console.debug(error);
},
});
});
});
</script>

这是 Controller 中的代码:

public function optionAjaxAction(Request $request)
{

if (!$request->isXmlHttpRequest()) {
throw new NotFoundHttpException();
}

$id = $request->query->get('dep_id');

$result = array();

// Return a list of options, based on the selected department
$repo = $this->getDoctrine()->getManager()->getRepository('MyBundle:RequestOption');
$option = $repo->findByDepartment($id, array('department' => 'asc'));
//var_dump($hardware);
foreach ($option as $o) {
$result[$o->getOption()] = $o->getId();
}

return new JsonResponse($result);
}

我很绝望。我真的很感激任何帮助!提前致谢(:

最佳答案

由于您正在生成 json 并且在您的客户端上没有设置 dataType,因此,dataType='text' 被视为作为一个明智的猜测。

如果您需要在 ajax 调用中添加 dataType:'json', 会更好。

<小时/>

另一方面,您不必发送相同的数据两次。您也在 ajax url 和 data 对象中发送它。

尝试从网址中删除:

var data = {
dep_id: $(this).val()
};


url: "{{ url('select_options') }}",
data: data,

关于javascript - 下拉列表中的 Json 解析器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37789811/

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