如何在点击单选按钮上获取json存储的数据

时间:2017-01-20 10:09:29

标签: javascript php json

我是javascript和php的初学者。我通过单选按钮点击js传递json数据,然后我想获得它并显示在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)?>>

enter image description here

更新::    这些代码是有效的,但由于某种原因,它不起作用,即。单选按钮位于foreach循环内(不是从d获取整个数据), data-jsondata 数据属性不包含正确的格式,这就是为什么它不起作用,否则它的工作感谢大家!快乐的编码

2 个答案:

答案 0 :(得分:1)

这可能会对你有帮助。

// Suppose Your JSON data is {"name":"abcd","age":"22"}  from PHP
<input type="radio" onclick="call(this)" data-jsondata='{"name":"abcd","age":"22"}' /> abc


function call(obj){
   var data = obj.getAttribute("data-jsondata");
   data = JSON.parse(data);
   alert(data.name);
}

Working Example

答案 1 :(得分:0)

data-jsondata应该用引号括起来

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

然后,在sendAjaxRequest中,一定要使用JSON.parse,因为这个地方的“元素”是一个字符串

编辑:根据https://api.jquery.com/data/#data-html5,JQuery的data()已经为你做了JSON解析,所以你不必使用JSON.parse()