1

私はextjs 4プロジェクトに取り組んでいます。jsこのプロジェクトでは、とファイルの間でやり取りを行う必要がありphpます。js から php を呼び出すには、Ext.Ajax.request を使用しています。

var dirs = [];

Ext.Ajax.request(
{
    url: 'text.php',
    method: 'GET',
    success: function(response) 
    {
        dirs = JSON.parse(response.responseText);

    },
    failure: function(response) 
    {
        alert('server-side failure with status code ' + response.status);
    }
});

// Creating dropdown list menu
document.write("<select class='select'>");
for (var i = 0; i < dirs.length; i++)
{
    document.write("<option>" + dirs[i] + "</option>");
}
document.write("</select>");

phpコードは次のとおりです。

<?php

$filepath = "scenarios";
$dirs = array();
$files = array();

$scenes = array_diff(scandir($filepath), array('..', '.'));

for ($i = 2; $i < count($scenes)+2; $i++)
{
    if (strpos($scenes[$i], '.'))
    {
        array_push($files, $scenes[$i]);
    }
    else
    {
        array_push($dirs, $scenes[$i]);
    }
}

if (count($dirs) > 0)
{
    echo json_encode($dirs);
}
else
{
    echo json_encode("You do nat have any projects. Please create new project.");
}   

?>

結果からリストメニューを生成したい部分に問題が発生しますdirs object。firebug DOM では dirs = ["google","yahoo"] ですが、ループでは dirs.length が 0 を返します???

alert(dirs.length)また、forループの前に置くと、0が表示され、リストメニューが正しく生成されます...奇妙な????

4

2 に答える 2