<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”中(因为我正在使用codeigniter),以下代码正在执行。
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 post的成功函数中,当我做console.log(数据)时,我在控制台中得到以下内容
[{"mapID":"17","notificationGroupId":"3","eblskyId":"eblsky33"},{"mapID":"18","notificationGroupId":"3","eblskyId":"eblsky44"}]
是json格式。现在我需要访问特定的数据,我需要访问
notificationGroupId
eblskyId
json字符串的这两个字段。现在我应该将整个json字符串存储在变量中,然后以某种方式访问或者我该怎么做。
由于
答案 0 :(得分:0)
[{"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"
与数据数组的其他索引相同
答案 1 :(得分:0)
使用$.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);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
保存字符串
使用 toString()
var str_data=data.toString()// you get as a string
答案 2 :(得分:0)
您的Response是一个字符串而不是JSON对象。
你必须使用
data = JSON.Parse(data);
现在你有一个JSON对象然后你可以参考@Rituraj ratan给出的答案
$.each(data, function(index, value) {
alert(value.notificationGroupId);
alert(value.eblskyId);
});
答案 3 :(得分:0)
稍微修改你的方法:
$this->output
->set_content_type("application/json")
->set_output( json_encode($this->pushnotification_model->get_group_eblskyids($_POST['grp_ids'])) );
而不是echo $skyid['sky_id'];
现在只接受JSON
数据,只需在Ajax请求中设置dataType
:
$.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);
});
}
});
根据您的需要处理它。