1

href リンクのデータ変数を介して配列を渡そうとしています:

<a href="#" class="edit" data-myvar="<?php echo json_encode($row); ?>">Test</a>

私は変数を処理するためにJqueryを使用しています:

$(function(){

     $('.edit').click(function(){

          var res=jQuery.parseJSON($(this).data("myvar"));

      console.log(res);

});


});

コンソール ログには次のように表示されます: Uncaught SyntaxError: Unexpected end of input

何か案は?

ありがとう。

4

2 に答える 2

1

まず、すべての引用符が HTML で問題ないことを確認するために、呼び出しに適用htmlentities()します。json_encode()

data-有効な JSON 構文が含まれている場合、jQuery はすでに属性の JSON 解析を行っています。したがって、次のことを行うのが正しい方法です。

// this will contain the JSON presentation of $row variable from PHP.    
var res = $(this).data("myvar");

jQueryドキュメントから:

文字列を JavaScript 値 (ブール値、数値、オブジェクト、配列、および null を含む) に変換するためのあらゆる試行が行われます。値の表現が変わらない場合にのみ、値は数値に変換されます。たとえば、「1E02」と「100.000」は数値 (数値 100) としては同等ですが、変換すると表現が変わるため、文字列として残されます。文字列値「100」は数値 100 に変換されます。

データ属性がオブジェクト ('{' で始まる) または配列 ('[' で始まる) の場合、jQuery.parseJSON を使用して文字列を解析します。引用符で囲まれたプロパティ名を含む有効な JSON 構文に従う必要があります。値が JavaScript 値として解析できない場合は、文字列として残されます。

働くフィドル

于 2013-09-16T15:50:54.930 に答える