急!!php页面加载不完全的问题,在线等

无涯 2013-07-19 10:52:14
RT,同一个页面多次刷新,有时候正常,有时候只显示一半,有时候则完全空白
完全的页面

一半


本机调试的时候没有遇到此问题,这是在外网发布的时候发生的。下拉框中的内容是用fopen打开了一个.tab文件然后读取出来的,然后通过循环转成数组,又通过循环给js数组赋值,循环为1000。
设置了set_time_limit(60*60*10)依然无效。。。
跪求指导,谢谢。。。附上部分代码

common.php
<?php
public static function readTabFile($fileName)
{
if (!file_exists($fileName))
{
die("<b>404 File not found!</b>");
}
$handle = fopen($fileName, 'rb');
$contents = fread($handle, filesize ($fileName));

//iconv("UTF-8","GBK", $contents);

if(ord($contents) == 0xEF)
{
$contents = substr($contents, 4);
}
$rows = explode("\r\n", $contents);
fclose($handle);
$ret;
$colNames = null;
for($i = 0; $i < count($rows); $i++)
{
$row = $rows[$i];
if(!empty($row) && $row != "" && substr($row, 0, 1) != "#")
{
$col = explode("\t", $row);
if(empty($colNames) || $colNames == null)
$colNames = $col;
else
{
$item;
$itemId = (int)$col[0];
if(empty($itemId))
{
die("...");
}
for($j = 0; $j < count($col); $j++)
{
$value = $col[$j];

$item[$colNames[$j]] = $value;
}
$ret[$itemId] = $item;
}
}
}
return $ret;

}
?>
test.php
<?php
$dir = "../goods.tab";
$table = Common::readTabFile($dir);
?>
<script>
var goodsTb = new Array();
<?php

foreach($table as $key => $value)
{
echo "goodsTb[".$value["id"]."]=\"".iconv("GBK","UTF-8", $value["sz_name"])."\";";
}
?>
function checkNum(i)
{
var sle_obj = document.getElementById('valueType' + i);
var index = sle_obj.selectedIndex;
var valueType = sle_obj.options[index].value;
var num_obj = document.getElementById('count' + i);
if(valueType == -1)
{
alert('请选择道具类型!');
}
if(num_obj.value > 500)
num_obj.value = 500;
}

var i = 1;
function addFile()
{
var dv = document.getElementById("dvFiles");
var selectObj = document.createElement("select");
selectObj.name = "valueType";
selectObj.id = "valueType" + i;

var sg = document.createTextNode("选择道具 ");
dv.appendChild(sg);
//创建select选项卡
var myOption = document.createElement("option");
myOption.setAttribute("value","-1");
myOption.appendChild(document.createTextNode("无"));
selectObj.appendChild(myOption);
for (var key in goodsTb)
{
var op = document.createElement("option");
op.setAttribute("value", key);
op.appendChild(document.createTextNode(goodsTb[key]));
selectObj.appendChild(op);
}
dv.appendChild(selectObj);
....

...全文
571 27 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
无涯 2013-07-25
  • 打赏
  • 举报
回复
引用 16 楼 anyilaoliu 的回复:
[quote=引用 15 楼 hxm19881010 的回复:] [quote=引用 14 楼 anyilaoliu 的回复:] 大概看了下你的页面最多就是几个有关联的select列表 可能还有ajax去后台取数据 php输出html+js提交查询和选择 完全可以实现 何必每一行都是js代码呢
第一个下拉框就是php直接输出的html的,但是有个添加按钮,每点一次都会产生一个新的下拉框。。。。目前添加按钮用的Js实现的[/quote] 点添加又出现一个选择道具物品的下拉框对吗? 和上一个有区别吗? 没有区别就直接将其html插入到上一个下拉单所在的div下方就可以了 假设第一个下拉框的class=abc,下拉框和后边的输入框在同一个div下 $(".abc").parent().after($(".abc").parent().html()); jquery一句话就实现了 怎么说呢业务细节越细我这边就没法说更多了因为不了解 其实我的意思归根结底就是完全没必要使用复杂的js循环导致页面都显示不完 很多方法可以实现的[/quote]。。
无涯 2013-07-25
  • 打赏
  • 举报
回复
引用 23 楼 hxm19881010 的回复:
[quote=引用 22 楼 anyilaoliu 的回复:] [quote=引用 21 楼 hxm19881010 的回复:] [quote=引用 19 楼 anyilaoliu 的回复:] [quote=引用 17 楼 hxm19881010 的回复:] 好吧,用jquery真的很简单- - 请问 $(".abc").after($(".abc").html()); 可以修改后面赋值内容的id跟name么
当然可以 这是另一个问题 看你的这个select列表的结构和你js文件的写法了 比如你给每一项定义一个自定义属性比如说叫val="id1234" 然后当你选择某一项时 用js获取选择项的这个val和中间的text描述 然后存入后边的input的value中 (用jquery选择器会很方便) 这是js比较简单的应用了.[/quote] jquery没有用过,只是参考文档能了解些语法。。。 我最早贴的图,就是我选择了物品后,需要填写数量,就是一个select跟一个text, 点击添加后,$(".abc").after($(".abc").html())这种方法,会导致select,text的id跟原来的一样,我想区分开来,比如用个变量i控制,每添加一个i就加1.。。 另外我想添加的项后面可以跟个删除按钮,点击删除可以删除本项,麻烦给个代码示例参考下,谢谢- -[/quote] 抱歉才到家. 写了个简单的demo,只有增加和删除DIV的 选择后写入值的可以去网上搜下相关文章

<!doctype html>
<html lang="cn">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<meta name="Keywords" content="" />
	<meta name="Description" content="" />

	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script>
	<script type="text/javascript">
		function addDiv(){
			var lastHtml = $(".abc:last").clone();
			
			
			var item_id = $(".abc:last select").attr("id");
			var input_id = $(".abc:last input").attr("id");


			var new_item_id = "item_" + (parseInt(item_id.substr(5))+1);
			var new_input_id = "item_num_" + (parseInt(input_id.substr(9))+1);

			lastHtml.children("select").attr("name",new_item_id);
			lastHtml.children("select").attr("id",new_item_id);
			lastHtml.children("input").attr("name",new_input_id);
			lastHtml.children("input").attr("id",new_input_id);

			$(".abc:last").after("<div class='abc'>"+lastHtml.html()+"</div>");
		}

		function delDiv(obj){
			var i = $(".abc").length;
			if (i>1)
			{
				$(obj).parent(".abc").remove();
			}else{
				alert("至少选择一项");
			}
		}
	</script>
</head>
<body>
	<div><!--以后换成form-->
		<div class="abc">
			<select name="item_1" id="item_1" >
				<option value="0">无</option>
				<option value="1">剑气火灵幻影</option>
				<option value="2">神武至尊怒火</option>
				<option value="3">鬼舞玄冰法杖</option>
			</select>

			数量

			<input type="text" name="item_num_1" id="item_num_1" value="" />

			<a href="javascript:void(0)" onclick="delDiv(this)">删除</a>
		</div>

		<button onClick = "addDiv()">添加</button>
	</div>
</body>
</html>
欢迎继续交流啊[/quote]非常感谢,结贴! 交个朋友- -[/quote]哥们在吗?问个问题
dennisLui 2013-07-20
  • 打赏
  • 举报
回复
给你个小思路 看能帮到你不!
test.php
<?php
    $dir = "../goods.tab";
    $table = Common::readTabFile($dir);
    foreach($table as $key => $value)
    {
      echo "<option value='{$value["id"]}'>".iconv("GBK","UTF-8", $value["sz_name"])."</option>";
   	}
?>
test.html //加载jquery
<select id="tools" name="tools[]"></select>
<a href="javascript:addTools();"></a>
<script>
function autoTools(){
	var i=$("#tools").length-1;
$.get("test.php",function(data){
$("#tools:eq("+i+")").html(data);
});
}
function addTools(){
	$("#tools").after("<select id='tools' name='tools[]'></select>").autoTools();
}
autoTools();
</script>
ImN1 2013-07-19
  • 打赏
  • 举报
回复
有时候正常大致可认为代码没问题 完全空白是什么意思?整个页面没一个字? 这多数是网络的问题,和代码没太大关系,除非是你的程序算法太复杂导致在浏览器超时范围内都没有响应
无涯 2013-07-19
  • 打赏
  • 举报
回复
管管啊
无涯 2013-07-19
  • 打赏
  • 举报
回复
在线等,呜呜呜呜
无涯 2013-07-19
  • 打赏
  • 举报
回复
跪求啊|!!
再看我一眼 2013-07-19
  • 打赏
  • 举报
回复
都是新手 多交流
无涯 2013-07-19
  • 打赏
  • 举报
回复
引用 22 楼 anyilaoliu 的回复:
[quote=引用 21 楼 hxm19881010 的回复:] [quote=引用 19 楼 anyilaoliu 的回复:] [quote=引用 17 楼 hxm19881010 的回复:] 好吧,用jquery真的很简单- - 请问 $(".abc").after($(".abc").html()); 可以修改后面赋值内容的id跟name么
当然可以 这是另一个问题 看你的这个select列表的结构和你js文件的写法了 比如你给每一项定义一个自定义属性比如说叫val="id1234" 然后当你选择某一项时 用js获取选择项的这个val和中间的text描述 然后存入后边的input的value中 (用jquery选择器会很方便) 这是js比较简单的应用了.[/quote] jquery没有用过,只是参考文档能了解些语法。。。 我最早贴的图,就是我选择了物品后,需要填写数量,就是一个select跟一个text, 点击添加后,$(".abc").after($(".abc").html())这种方法,会导致select,text的id跟原来的一样,我想区分开来,比如用个变量i控制,每添加一个i就加1.。。 另外我想添加的项后面可以跟个删除按钮,点击删除可以删除本项,麻烦给个代码示例参考下,谢谢- -[/quote] 抱歉才到家. 写了个简单的demo,只有增加和删除DIV的 选择后写入值的可以去网上搜下相关文章

<!doctype html>
<html lang="cn">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<meta name="Keywords" content="" />
	<meta name="Description" content="" />

	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script>
	<script type="text/javascript">
		function addDiv(){
			var lastHtml = $(".abc:last").clone();
			
			
			var item_id = $(".abc:last select").attr("id");
			var input_id = $(".abc:last input").attr("id");


			var new_item_id = "item_" + (parseInt(item_id.substr(5))+1);
			var new_input_id = "item_num_" + (parseInt(input_id.substr(9))+1);

			lastHtml.children("select").attr("name",new_item_id);
			lastHtml.children("select").attr("id",new_item_id);
			lastHtml.children("input").attr("name",new_input_id);
			lastHtml.children("input").attr("id",new_input_id);

			$(".abc:last").after("<div class='abc'>"+lastHtml.html()+"</div>");
		}

		function delDiv(obj){
			var i = $(".abc").length;
			if (i>1)
			{
				$(obj).parent(".abc").remove();
			}else{
				alert("至少选择一项");
			}
		}
	</script>
</head>
<body>
	<div><!--以后换成form-->
		<div class="abc">
			<select name="item_1" id="item_1" >
				<option value="0">无</option>
				<option value="1">剑气火灵幻影</option>
				<option value="2">神武至尊怒火</option>
				<option value="3">鬼舞玄冰法杖</option>
			</select>

			数量

			<input type="text" name="item_num_1" id="item_num_1" value="" />

			<a href="javascript:void(0)" onclick="delDiv(this)">删除</a>
		</div>

		<button onClick = "addDiv()">添加</button>
	</div>
</body>
</html>
欢迎继续交流啊[/quote]非常感谢,结贴! 交个朋友- -
再看我一眼 2013-07-19
  • 打赏
  • 举报
回复
引用 21 楼 hxm19881010 的回复:
[quote=引用 19 楼 anyilaoliu 的回复:] [quote=引用 17 楼 hxm19881010 的回复:] 好吧,用jquery真的很简单- - 请问 $(".abc").after($(".abc").html()); 可以修改后面赋值内容的id跟name么
当然可以 这是另一个问题 看你的这个select列表的结构和你js文件的写法了 比如你给每一项定义一个自定义属性比如说叫val="id1234" 然后当你选择某一项时 用js获取选择项的这个val和中间的text描述 然后存入后边的input的value中 (用jquery选择器会很方便) 这是js比较简单的应用了.[/quote] jquery没有用过,只是参考文档能了解些语法。。。 我最早贴的图,就是我选择了物品后,需要填写数量,就是一个select跟一个text, 点击添加后,$(".abc").after($(".abc").html())这种方法,会导致select,text的id跟原来的一样,我想区分开来,比如用个变量i控制,每添加一个i就加1.。。 另外我想添加的项后面可以跟个删除按钮,点击删除可以删除本项,麻烦给个代码示例参考下,谢谢- -[/quote] 抱歉才到家. 写了个简单的demo,只有增加和删除DIV的 选择后写入值的可以去网上搜下相关文章

<!doctype html>
<html lang="cn">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<meta name="Keywords" content="" />
	<meta name="Description" content="" />

	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script>
	<script type="text/javascript">
		function addDiv(){
			var lastHtml = $(".abc:last").clone();
			
			
			var item_id = $(".abc:last select").attr("id");
			var input_id = $(".abc:last input").attr("id");


			var new_item_id = "item_" + (parseInt(item_id.substr(5))+1);
			var new_input_id = "item_num_" + (parseInt(input_id.substr(9))+1);

			lastHtml.children("select").attr("name",new_item_id);
			lastHtml.children("select").attr("id",new_item_id);
			lastHtml.children("input").attr("name",new_input_id);
			lastHtml.children("input").attr("id",new_input_id);

			$(".abc:last").after("<div class='abc'>"+lastHtml.html()+"</div>");
		}

		function delDiv(obj){
			var i = $(".abc").length;
			if (i>1)
			{
				$(obj).parent(".abc").remove();
			}else{
				alert("至少选择一项");
			}
		}
	</script>
</head>
<body>
	<div><!--以后换成form-->
		<div class="abc">
			<select name="item_1" id="item_1" >
				<option value="0">无</option>
				<option value="1">剑气火灵幻影</option>
				<option value="2">神武至尊怒火</option>
				<option value="3">鬼舞玄冰法杖</option>
			</select>

			数量

			<input type="text" name="item_num_1" id="item_num_1" value="" />

			<a href="javascript:void(0)" onclick="delDiv(this)">删除</a>
		</div>

		<button onClick = "addDiv()">添加</button>
	</div>
</body>
</html>
欢迎继续交流啊
无涯 2013-07-19
  • 打赏
  • 举报
回复
引用 19 楼 anyilaoliu 的回复:
[quote=引用 17 楼 hxm19881010 的回复:] 好吧,用jquery真的很简单- - 请问 $(".abc").after($(".abc").html()); 可以修改后面赋值内容的id跟name么
当然可以 这是另一个问题 看你的这个select列表的结构和你js文件的写法了 比如你给每一项定义一个自定义属性比如说叫val="id1234" 然后当你选择某一项时 用js获取选择项的这个val和中间的text描述 然后存入后边的input的value中 (用jquery选择器会很方便) 这是js比较简单的应用了.[/quote] jquery没有用过,只是参考文档能了解些语法。。。 我最早贴的图,就是我选择了物品后,需要填写数量,就是一个select跟一个text, 点击添加后,$(".abc").after($(".abc").html())这种方法,会导致select,text的id跟原来的一样,我想区分开来,比如用个变量i控制,每添加一个i就加1.。。 另外我想添加的项后面可以跟个删除按钮,点击删除可以删除本项,麻烦给个代码示例参考下,谢谢- -
无涯 2013-07-19
  • 打赏
  • 举报
回复
引用 18 楼 quzhongxiong 的回复:
你是不是用了什么第三方的模板插件呐,一般引起这问题是因为模板内部缓存功能
什么插件都没用。。。
再看我一眼 2013-07-19
  • 打赏
  • 举报
回复
引用 17 楼 hxm19881010 的回复:
好吧,用jquery真的很简单- - 请问 $(".abc").after($(".abc").html()); 可以修改后面赋值内容的id跟name么
当然可以 这是另一个问题 看你的这个select列表的结构和你js文件的写法了 比如你给每一项定义一个自定义属性比如说叫val="id1234" 然后当你选择某一项时 用js获取选择项的这个val和中间的text描述 然后存入后边的input的value中 (用jquery选择器会很方便) 这是js比较简单的应用了.
quzhongxiong 2013-07-19
  • 打赏
  • 举报
回复
你是不是用了什么第三方的模板插件呐,一般引起这问题是因为模板内部缓存功能
无涯 2013-07-19
  • 打赏
  • 举报
回复
好吧,用jquery真的很简单- - 请问 $(".abc").after($(".abc").html()); 可以修改后面赋值内容的id跟name么
再看我一眼 2013-07-19
  • 打赏
  • 举报
回复
引用 15 楼 hxm19881010 的回复:
[quote=引用 14 楼 anyilaoliu 的回复:] 大概看了下你的页面最多就是几个有关联的select列表 可能还有ajax去后台取数据 php输出html+js提交查询和选择 完全可以实现 何必每一行都是js代码呢
第一个下拉框就是php直接输出的html的,但是有个添加按钮,每点一次都会产生一个新的下拉框。。。。目前添加按钮用的Js实现的[/quote] 点添加又出现一个选择道具物品的下拉框对吗? 和上一个有区别吗? 没有区别就直接将其html插入到上一个下拉单所在的div下方就可以了 假设第一个下拉框的class=abc,下拉框和后边的输入框在同一个div下 $(".abc").parent().after($(".abc").parent().html()); jquery一句话就实现了 怎么说呢业务细节越细我这边就没法说更多了因为不了解 其实我的意思归根结底就是完全没必要使用复杂的js循环导致页面都显示不完 很多方法可以实现的
无涯 2013-07-19
  • 打赏
  • 举报
回复
引用 14 楼 anyilaoliu 的回复:
大概看了下你的页面最多就是几个有关联的select列表 可能还有ajax去后台取数据 php输出html+js提交查询和选择 完全可以实现 何必每一行都是js代码呢
第一个下拉框就是php直接输出的html的,但是有个添加按钮,每点一次都会产生一个新的下拉框。。。。目前添加按钮用的Js实现的
再看我一眼 2013-07-19
  • 打赏
  • 举报
回复
大概看了下你的页面最多就是几个有关联的select列表 可能还有ajax去后台取数据 php输出html+js提交查询和选择 完全可以实现 何必每一行都是js代码呢
再看我一眼 2013-07-19
  • 打赏
  • 举报
回复
汗 你这个用php来输出了一堆js语句.... 用PHP直接输出html不行吗.......
无涯 2013-07-19
  • 打赏
  • 举报
回复
echo $str;
	foreach($table as $key => $value)
	{
		echo 'var op = document.createElement(\"option\");';
		echo 'op.setAttribute(\"value\", "'.$value["id"].'");';
		echo 'op.appendChild(document.createTextNode("'.iconv("GBK","UTF-8", $value["sz_name"]).'"));';
		echo 'selectObj.appendChild(op)';
	}
	?>
用php来输出Html还是不行。。。。。。。。。。。
加载更多回复(7)

21,894

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧