Я новичок в 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 не содержит правильного формата, поэтому он не работает, иначе работает, спасибо всем !! счастливое кодирование
Это может помочь вам.
// 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);
}
Данные-jsondata должны быть заключены в кавычки
data-jsondata="<?php echo json_encode($return_arr)?>"
тогда в sendAjaxRequest обязательно используйте JSON.parse, так как «элементом» в этом месте является строка
РЕДАКТИРОВАТЬ: в соответствии с https://api.jquery.com/data/#data-html5 data () JQuery уже выполняет для вас JSON-разбор, поэтому вам все равно не нужно использовать JSON.parse ()