Php和javascript工作在本地主机,但不是在托管网站
Php and javascript working on localhost but not on hosted website
我实现了一个搜索表单,它有3个下拉<select>
标签前2个下拉菜单有静态选项,而我使用javascript创建第三个下拉菜单的选项。javascript是基于onchange
的第二个下拉事件,并存储在searchideas.js
文件
这个searchideas.js
文件通过XMLHttpRequest
使用GET
方法调用datasupplier.php
。在我的本地主机上所有的工作都很好,但是当我在现场网站上托管它时,第三个下拉菜单的选项不会生成。xmlhttp.readyState
变为4
, xmlhttp.status
变为500
,对应服务器内部错误。
我还将searchideas.js
和datasupplier.php
移动到包含下拉菜单的网页所在的文件夹中,但无济于事。
我怎样才能克服这个错误?
我的searchideas.js
是:
function searchideas( )
{
var state = document.getElementById("stateID").value;
var county = document.getElementById("countyID").value;
var town = document.getElementById("townID").value;
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var selectList = document.getElementById('townID');
var val = xmlhttp.responseText;
var jsonData = JSON.parse(val);
for (var i in jsonData)
{
var option = document.createElement('option');
option.value = "http://www.mywebsite.com" + i;
option.text = jsonData[i];
selectList.appendChild(option);
}
}
}
var url = "http://www.mywebsite.com/sites/all/themes/danland/datasupplier.php?stateID=" + state + "&countyID=" + county + "&townID=" + town;
xmlhttp.open("GET",url,true);
xmlhttp.send();
}
我的datasupplier.php
是:
<?php
$stateID = $_GET['stateID'];
$countyID = $_GET['countyID'];
$townID = $_GET['townID'];
$states = array();
$states['SC'] = "Stories";
$states['TL'] = "Novels";
$counties = array();
$counties['SC']['PRACT'] = 'By Interest';
$counties['SC']['SERV'] = 'By Choice';
$counties['TL']['PRACT'] = 'By Interest';
$counties['TL']['SERV'] = 'By Choice';
$towns = array();
$towns['SC']['PRACT']['/index.php?q=sc%3Fpract%3Ffai'] = "Fairy Tale";
$towns['SC']['PRACT']['/index.php?q=sc%3Fpract%3Fedu'] = "Education";
$towns['SC']['SERV']['/index.php?q=sc%3Fserv%3Ffic'] = "Fiction";
$towns['TL']['PRACT']['/index.php?q=tl%3Fpract%3Fzom'] = "Zombie";
$towns['TL']['PRACT']['/index.php?q=tl%3Fpract%3Fedu'] = "Education";
$towns['TL']['SERV']['/index.php?q=tl%3Fserv%3Fsal'] = "Sales";
$towns['TL']['SERV']['/index.php?q=tl%3Fserv%3Fstr'] = "Strategy";
if($stateID && !$countyID && !$townID)
{
echo json_encode( $counties[$stateID] );
}
elseif( $stateID && $countyID && !$townID )
{
echo json_encode( $towns[$stateID][$countyID] );
}
elseif( isset($villages[$stateID][$countyID][$townID]) )
{
echo json_encode( $villages[$stateID][$countyID][$townID] );
}
else
{
echo '{}';
}
?>
由于文件权限,我遇到了与您相同的问题,将权限从755
更改为644
工作。如果您的权限与权限有关,请尝试将datasupplier.php
的权限设置为644
。
相关文章:
- 如何识别我的网站中的慢速设备
- chrome扩展更改主机/域警告
- 用Javascript更改我网站上的字体大小
- 有任何可能将facebook实时信使整合到一个网站中
- 将电视直播频道从网站嵌入我的网站
- Windows 8固定的网站互动程序
- 门户网站:当地时间有多有用
- 正在删除node.js中已验证的网站
- 为什么在这个网站上不能通过JS访问元素
- 需要使用谷歌应用程序脚本列出谷歌域下的所有网站
- 为什么只有工厂在棱角分明的网站上被提及
- 从应用程序脚本检查谷歌网站访问权限
- 使用谷歌网站翻译器自动翻译网页
- 使用node.js制作网站
- IE8不能呈现我的网站,除非我添加主机到受信任的网站
- 源代码的变化不会立即反映在他们上传到我的网站主机
- 如何获得网站的主机名IFrame嵌入
- 使用Grunt服务在本地主机上显示网站
- Php和javascript工作在本地主机,但不是在托管网站
- iFrame窗口高度跨域(请求从主机网站)