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