<label>Group Name</label>
<select id="group" name="groupName">
<option value="0">Select Group Name</option>
<?php foreach ($userGroup as $item) { ?>
<option value="<?= $item->notificationGroupID ?>"><?= $item->groupName ?></option>
<?php } ?>
</select>
<br></br>
这是我从数据库中填充的下拉列表,当我在下拉列表中选择任何选项时,它会触发以下 ajax 帖子
jQuery(document).ready(function(){
$("#group").change(function() {
var group_ids = {"grp_ids" : $('#group').val()};
$.ajax({
type: "POST",
data: group_ids,
url: "<?= base_url() ?>pushnotification_group_wise/group_wise_skyid",
success: function(data){
console.log(data);
}
});
});
});
现在,在控制器"pushnotification_group_wise"(因为我正在使用代码点火器)内的方法"group_wise_skyid"中,正在执行以下代码。
public function group_wise_skyid()
{
if(isset($_POST['grp_ids']))
{
$skyid['sky_id'] = json_encode($this->pushnotification_model->get_group_eblskyids($_POST['grp_ids']));
echo $skyid['sky_id'];
}
这是调用模型函数并返回一些我正在回显的数据。现在在ajax帖子的成功功能中,当我做控制台.log(数据)我在控制台中得到以下内容
[{"mapID":"17","notificationGroupId":"3","eblskyId":"eblsky33"},{"mapID":"18","notificationGroupId":"3","eblskyId":"eblsky44"}]
采用 JSON 格式。现在我需要访问要特定的数据,我需要访问
notificationGroupId
eblskyId
这是 JSON 字符串的两个字段。现在我应该将整个 json 字符串存储在一个变量中,然后以某种方式访问,或者我该怎么做。
谢谢
稍微
修改一下你的方法:
$this->output
->set_content_type("application/json")
->set_output( json_encode($this->pushnotification_model->get_group_eblskyids($_POST['grp_ids'])) );
而不是echo $skyid['sky_id'];
现在只接受您在 Ajax 请求中设置dataType
JSON
数据:
$.ajax({
type: "POST",
data: group_ids,
url: "<?= base_url() ?>pushnotification_group_wise/group_wise_skyid",
dataType: 'json',
success: function(data){
$.each(data, function(i, data) {
console.log('notificationGroupId - ', data.notificationGroupId);
console.log('eblskyId - ', data.eblskyId);
});
}
});
根据您的需要处理它。
[{"mapID":"17","notificationGroupId":"3","eblskyId":"eblsky33"},{"mapID":"18","notificationGroupId":"3","eblskyId":"eblsky44"}]
这是一个对象数组。此数组由 2 个对象组成。
我假设,这个数组的名称是数据
要访问第一个对象,您可以这样做:
data[0].mapID will return "17"
data[0].notificationGroupId will return "3"
data[0].eblskyId will return "eblsky33"
数据数组的其他索引相同
使用 $.each 通过这个你可以访问数据中的所有东西
在您的情况下,它是对象数组
var data = [{
"mapID": "17",
"notificationGroupId": "3",
"eblskyId": "eblsky33"
}, {
"mapID": "18",
"notificationGroupId": "3",
"eblskyId": "eblsky44"
}]
$.each(data, function(index, value) {
alert(value.notificationGroupId);
alert(value.eblskyId);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
保存 s 字符串
使用 toString()
var str_data=data.toString()// you get as a string
您的
响应是一个字符串,而不是一个 JSON 对象。
你必须使用 data = JSON.Parse(data);
现在你有一个JSON对象,然后你可以参考@Rituraj ratan给出的答案
$.each(data, function(index, value) {
alert(value.notificationGroupId);
alert(value.eblskyId);
});