私は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が表示され、リストメニューが正しく生成されます...奇妙な????