需要帮助访问javascript中perl脚本返回的JSON哈希吗

需要帮助访问javascript中perl脚本返回的JSON哈希吗,javascript,php,json,perl,Javascript,Php,Json,Perl,让我清楚地告诉你我最终想要完成什么: 我有一个Php脚本,它使用MySql db connect填充dropdownlist。 以下是PHP的代码: PHP文件的开始 我的%hash; @散列{@loces}=@值; my$json\u text=encode\u json(\%hash) JSON输出 打印$json_文本; {“古尔冈”:“2300”,“新加坡”:“2300”,“孟买”:“2300”,“阿姆斯特丹”:“2300”} 所以基本上我想做的是: 1) 返回的JSON包含作为键的位置

让我清楚地告诉你我最终想要完成什么: 我有一个Php脚本,它使用MySql db connect填充dropdownlist。 以下是PHP的代码:

PHP文件的开始 我的%hash; @散列{@loces}=@值; my$json\u text=encode\u json(\%hash)

JSON输出 打印$json_文本; {“古尔冈”:“2300”,“新加坡”:“2300”,“孟买”:“2300”,“阿姆斯特丹”:“2300”}

所以基本上我想做的是: 1) 返回的JSON包含作为键的位置和作为值的值。我需要比较位置下拉列表上的位置值和JSON位置值是否相同,然后我需要在div id=“iamdiv”中返回相应的JSON值。
我想我需要使用下拉列表的onchange事件,但是如何在javascript中使用perl返回的json?

首先需要移出
$p=shell_exec(“AS.pl$myid”)从选择标记中取出,并将其放置在脚本标记中

<script type="text/javascript">
 var jsonString = <?php shell_exec("AS.pl $myid ");?>
</script>

var jsonString=
然后必须确保在加载所有DOM后运行javascript。或者,您可以简单地将javascript放在页面底部

<script type="text/javascript">
    var locInfo = eval("(" + jsonString + ")");// make a json object from string
    var select = document.getElementById('producttype-dropdown'); // select the dropdown

    //Attach the onchange event handler
    select.onchange = function (e) { 
       //iterate through keys in json object
        for (var key in locInfo) {
            if (key == select.options[select.selectedIndex].value) { // check for equality 
                document.getElementById('iamdiv').innerHTML = locInfo[key]; //Assign result
            }
        }

    };
</script>

var locInfo=eval(“(“+jsonString+”);//从字符串生成json对象
var select=document.getElementById('producttype-dropdown');//选择下拉列表
//附加onchange事件处理程序
select.onchange=函数(e){
//遍历json对象中的键
for(locInfo中的var键){
如果(key==select.options[select.selectedIndex].value){//检查是否相等
document.getElementById('iamdiv')。innerHTML=locInfo[key];//分配结果
}
}
};

您可以找到正在运行的演示。希望这能帮助你

为什么需要使用perl来完成这项工作?我对脚本编写一无所知,我已经学会了perl,这就是为什么,但是如果你能建议一种更好的方法,请务必这样做:)我的js和php已经生锈了,但是你可以使用php打印json字符串。并通过$.getJSON()和$.parseJSON()使用jquery。只包含相关代码-这应该是Perl或PHP,这取决于创建JSON或使用JSON是否有问题。同样,对PHPJavaScript也执行同样的操作。最后应该只有一个语言标签。非常感谢你不辞辛劳地做了一个工作演示:)我正在尝试,并将在5分钟内告诉你状态。我接受这个作为答案:)非常感谢Nouphal先生。它工作得非常好。
Singapore :2300
Amsterdam :2300
Mumbai :2300
Gurgaon :2300

i have a hash which is encoded to JSON
**Hash output**
$VAR1 = {
          'Gurgaon' => '2300',
          'Singapore' => '2300',
          'Mumbai' => '2300',
          'Amsterdam' => '2300'
        };
**End of perl**
<script type="text/javascript">
 var jsonString = <?php shell_exec("AS.pl $myid ");?>
</script>
<script type="text/javascript">
    var locInfo = eval("(" + jsonString + ")");// make a json object from string
    var select = document.getElementById('producttype-dropdown'); // select the dropdown

    //Attach the onchange event handler
    select.onchange = function (e) { 
       //iterate through keys in json object
        for (var key in locInfo) {
            if (key == select.options[select.selectedIndex].value) { // check for equality 
                document.getElementById('iamdiv').innerHTML = locInfo[key]; //Assign result
            }
        }

    };
</script>