Değişkeni kullanarak json üyesi değerlendirmek nasıl?

2 Cevap php

Merhaba ben bir sorun değerlendirirken json var. Amacım bir işlev değişkene json üye değer eklemek için, bu bir göz atın

function func_load_session(svar){

var id = '';

$.getJSON('data/session.php?load='+svar, function(json){

  eval('id = json.'+svar);

});

return id;

}

Bu kod i önceden mağaza ettik php dosyadan oturumu yükleyin. i dinamik var kullanarak, oturum değişkeni saklamak.

<?php
/*
* format ?var=[nama_var]&val=[nilai_nama_var]
*/ 

$var = $_GET['var'];
$val = $_GET['val'];
$load = $_GET['load'];

session_start();

if($var){
  $_SESSION["$var"] = $val;
  echo "Store SESSION[\"$var\"] = '".$_SESSION["$var"]."'";
}else if($load){
  echo $_SESSION["$load"];  
}
?>

Firebug kullanarak, i yanıtı beklenen almak ama aynı zamanda hata aldı

> uncaught exception: Syntax error, unrecognized expression: )

Bu işaret

> eval('id = json.'+svar);

Bunu çözmek için nasıl merak ediyorum

2 Cevap

Kullanmak için doğru kod:

id = json[svar];

Ayrıca alert(svar); o svar önceden doğru değeri içeren kontrol eklemek isteyebilirsiniz.

Ancak, kod hala çalışmaz: id değişken atanmadan önce func_load_session function ajax arama tamamlanmadan önce, hemen dönecektir ve.

bunun yerine neyi yapmanız gereken size id ajax geriçağrıcıdan ile yapmak istediğiniz ne olursa olsun gerçekleştirmek için:

function func_load_session(svar){
    $.getJSON('data/session.php?load='+svar, function(json){
        var id = json[svar];
        doSomethingWith(id);
    });
}

Also If I understand and have full part of your code Your json comes out like Store["var"]="var" ?? Does not appear valid json

Ben php function json_encode kullanmanızı öneririz ()

Yani php olurdu

 $var = $_GET['var'];
$val = $_GET['val'];
$load = $_GET['load'];

session_start();

if($var){
  $_SESSION["$var"] = $val;
  echo json_encode(array($var=>$_SESSION[$var])); // or something like that 
}else if($load){
  echo json_encode(array('load'=>$_SESSION["$load"]);  
}
?>