javascript — как получить данные, сохраненные в формате json, по щелчку переключателя

Я новичок в JavaScript и PHP. Я передаю данные json по нажатию переключателя на js, а затем выбираю конкретное радио. Я хочу получить его и отобразить в таблице html.

$return_arr=array();
$row_array['firstName']= $row['firstName'];
$row_array['lastName']= $row['lastName'];
$row_array['mobiePhoneNumber']= $row['mobiePhoneNumber'];
$row_array['officePhoneNumber']= $row['officePhoneNumber'];

// here push data into json array
array_push($return_arr,$row_array);

$(".radioBtn").click(function(event){
e.preventDefault();
// using data attribute getting data of radio button click (json data)
sendAjaxRequest(($(this).data("jsondata")));
});

function sendAjaxRequest(element,urlToSend)
{
// here element has got whole json data but not able to get one by one data
// I have used JSON.parse(element); but page is not working
var jsondata = element;

alert(jsondata.firstName);

//var jsonDataa = $.parse(jsondata);
alert(jsondata["firstName"]);
}

Из передаваемого по HTML радио выбираются целые данные JSON

<input type="radio" id="radioBtn" class="radioBtn" name="radioBtn"data-jsondata=<?php echo json_encode($return_arr)?>>

введите описание изображения здесь

Обновить::
этот код работает, но по какой-то причине он не работает, т.е. переключатель находится внутри цикла foreach (не получает целые данные из d), а данное jsondata Атрибут data не содержит правильного формата, поэтому он не работает, иначе работает, спасибо всем !! счастливое кодирование

0

Решение

Это может помочь вам.

// Suppose Your JSON data is {"name":"abcd","age":"22"}  from PHP
<input type="radio" onclick="call(this)" data-jsondata='{"name":"abcd","age":"22"}' /> abcfunction call(obj){
var data = obj.getAttribute("data-jsondata");
data = JSON.parse(data);
alert(data.name);
}

Рабочий пример

1

Другие решения

Данные-jsondata должны быть заключены в кавычки

data-jsondata="<?php echo json_encode($return_arr)?>"

тогда в sendAjaxRequest обязательно используйте JSON.parse, так как «элементом» в этом месте является строка

РЕДАКТИРОВАТЬ: в соответствии с https://api.jquery.com/data/#data-html5 data () JQuery уже выполняет для вас JSON-разбор, поэтому вам все равно не нужно использовать JSON.parse ()

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector