dpy83214 2013-04-11 09:45
浏览 34
已采纳

在php中未终止的字符串文字(当数据是全宽或太长时)

I'm not sure it is because of full-width or too long string, my web page will occur the problem when the string too long, and because the data is dynamic appended, so the data should be full-width since the other page that let user input their data is full-width( Japanese or Chinese). My html is:

<!DOCTYPE html PUBLIC "-/W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<head>
<title>Lomiro</title> 
<style type="text/css"> 
<!--
.style2 {font-family: Arial, Helvetica, sans-serif; font-size: 16px;}
-->
a:link {
    text-decoration: none;
    color: #FFFFFF;
}
a:visited {
    text-decoration: none;
    color: #FFFFFF;
}
a:hover {
    text-decoration: none;
    color: #FFFFFF;
}
a:active {
    text-decoration: none;
    color: #FFFFFF;
}
body,td,th {
    font-size: 16px;
}
.style3 {color: #FFFFFF}
</style>
<script type="text/javascript"> 
function addRow(i,id,names,addr,cell,cam,num,shop,pay,date)
{
    var tableis = document.getElementById("info");
    var last=(-1);
    var Tr = tableis.insertRow(last);
    var Td1 = Tr.insertCell(0);
    Td1.innerHTML="<input type='text' readonly='readonly' style='cursor: default; width: 100px;' name='id"+i+"' id='id"+i+"' value='"+id+"' />";
    Tr.appendChild(Td1);
    var Td2 = Tr.insertCell(1);
    Td2.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 100px;" name="name'+i+'" id="name'+i+'" value="'+names+'" />';
    Tr.appendChild(Td2);
    var Td3 = Tr.insertCell(2);
    Td3.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 330px;" name="addr'+i+'" id="addr'+i+'" value="'+addr+'" />';
    Tr.appendChild(Td3);
    var Td4 = Tr.insertCell(3);
    Td4.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 90px;" name="cell'+i+'" id="cell'+i+'" value="'+cell+'" />';
    Tr.appendChild(Td4);
    var Td5 = Tr.insertCell(4);
    Td5.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 100px;" name="cam'+i+'" id="cam'+i+'" value="'+cam+'" />';
    Tr.appendChild(Td5);
    var Td6 = Tr.insertCell(5);
    Td6.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 80px;" name="num'+i+'" id="num'+i+'" value="'+num+'" />';
    Tr.appendChild(Td6);
    var Td7 = Tr.insertCell(6);
    Td7.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 100px;" name="shop'+i+'" id="shop'+i+'" value="'+shop+'" />';
    Tr.appendChild(Td7);
    var Td8 = Tr.insertCell(7);
    Td8.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 70px;" name="pay'+i+'" id="pay'+i+'" value="'+pay+'" />';
    Tr.appendChild(Td8);
    var Td9 = Tr.insertCell(8);
    Td9.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 70px;" name="date'+i+'" id="date'+i+'" value="'+date+'" />';
    Tr.appendChild(Td9);
}
function addRow2(i,shop,id,names,addr,cell,cam,num,pay,date)
{
    var tableis = document.getElementById("info");
    var last=(-1);
    var Tr = tableis.insertRow(last);
    var Td1 = Tr.insertCell(0);
    Td1.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 100px;" name="shop'+i+'" id="shop'+i+'" value="'+shop+'" />';
    Tr.appendChild(Td1);
    var Td2 = Tr.insertCell(1);
    Td2.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 100px;" name="id'+i+'" id="id'+i+'" value="'+id+'" />';
    Tr.appendChild(Td2);
    var Td3 = Tr.insertCell(2);
    Td3.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 100px;" name="name'+i+'" id="name'+i+'" value="'+names+'" />';
    Tr.appendChild(Td3);
    var Td4 = Tr.insertCell(3);
    Td4.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 330px;" name="addr'+i+'" id="addr'+i+'" value="'+addr+'" />';
    Tr.appendChild(Td4);
    var Td5 = Tr.insertCell(4);
    Td5.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 90px;" name="cell'+i+'" id="cell'+i+'" value="'+cell+'" />';
    Tr.appendChild(Td5);
    var Td6 = Tr.insertCell(5);
    Td6.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 100px;" name="cam'+i+'" id="cam'+i+'" value="'+cam+'" />';
    Tr.appendChild(Td6);
    var Td7 = Tr.insertCell(6);
    Td7.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 80px;" name="num'+i+'" id="num'+i+'" value="'+num+'" />';
    Tr.appendChild(Td7);
    var Td8 = Tr.insertCell(7);
    Td8.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 70px;" name="pay'+i+'" id="pay'+i+'" value="'+pay+'" />';
    Tr.appendChild(Td8);
    var Td9 = Tr.insertCell(8);
    Td9.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 70px;" name="date'+i+'" id="date'+i+'" value="'+date+'" />';
    Tr.appendChild(Td9);
}
function addRow3(i,date,id,names,addr,cell,cam,num,shop,pay)
{
    var tableis = document.getElementById("info");
    var last=(-1);
    var Tr = tableis.insertRow(last);
    var Td1 = Tr.insertCell(0);
    Td1.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 70px;" name="date'+i+'" id="date'+i+'" value="'+date+'" />';
    Tr.appendChild(Td1);
    var Td2 = Tr.insertCell(1);
    Td2.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 100px;" name="id'+i+'" id="id'+i+'" value="'+id+'" />';
    Tr.appendChild(Td2);
    var Td3 = Tr.insertCell(2);
    Td3.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 100px;" name="name'+i+'" id="name'+i+'" value="'+names+'" />';
    Tr.appendChild(Td3);
    var Td4 = Tr.insertCell(3);
    Td4.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 330px;" name="addr'+i+'" id="addr'+i+'" value="'+addr+'" />';
    Tr.appendChild(Td4);
    var Td5 = Tr.insertCell(4);
    Td5.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 90px;" name="cell'+i+'" id="cell'+i+'" value="'+cell+'" />';
    Tr.appendChild(Td5);
    var Td6 = Tr.insertCell(5);
    Td6.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 100px;" name="cam'+i+'" id="cam'+i+'" value="'+cam+'" />';
    Tr.appendChild(Td6);
    var Td7 = Tr.insertCell(6);
    Td7.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 80px;" name="num'+i+'" id="num'+i+'" value="'+num+'" />';
    Tr.appendChild(Td7);
    var Td8 = Tr.insertCell(7);
    Td8.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 100px;" name="shop'+i+'" id="shop'+i+'" value="'+shop+'" />';
    Tr.appendChild(Td8);
    var Td9 = Tr.insertCell(8);
    Td9.innerHTML='<input type="text" readonly="readonly" style="cursor: default; width: 70px;" name="pay'+i+'" id="pay'+i+'" value="'+pay+'" />';
    Tr.appendChild(Td9);
}
function printOut(block)
{
    var value = block.innerHTML;
    var printPage = window.open("","printPage","");
    printPage.document.open();
    printPage.document.write("<HTML><head></head><BODY onload='window.print();window.close()'>");
    printPage.document.write("<PRE>");
    printPage.document.write(value);
    printPage.document.write("</PRE>");
    printPage.document.close("</BODY></HTML>");
}
</script>
</head>
<body>
<table width="589" align="right" style="position: absolute; right: 0px; top: 0px; width: 589px;">
  <tr>
    <td width="118" height="23" style="background-color: #3366CC;"><div align="center" class="style2"><a href="query.php" target="mainFrame">検索</a></div></td>
    <td width="118" style="background-color: #3366CC;"><div align="center" class="style2"><a href="addnew.php" target="mainFrame">顧客管理</a></div></td>
    <td width="118" style="background-color: #3366CC;"><div align="center" class="style2"><a href="shop.php" target="mainFrame">代理店管理</a></div></td>
    <td width="118" style="background-color: #3366CC;"><div align="center" class="style2"><a href="statistic.php" target="mainFrame">統計管理</a></div></td>
  <td width="118" style="background-color: #9966FF;"><div align="center" class="style2"><a href="output.php" target="mainFrame">会計管理</a></div></td></tr>
</table>
<br/>
<br/>
<form method='post' action='exout.php'>
<div id='block' align='center'>
2013/4/1~2013/4/11
総契約者DATA
<table width='737' border='0' name='info' id='info'>
<tr>
<td align='center' bgcolor='#9999FF'>Lomiro ID</td>
<td align='center' bgcolor='#9999FF'>氏名</td>
<td align='center' bgcolor='#9999FF'>住所</td>
<td align='center' bgcolor='#9999FF'>携帯電話</td>
<td align='center' bgcolor='#9999FF'>MAC</td>
<td align='center' bgcolor='#9999FF'>型番</td>
<td align='center' bgcolor='#9999FF'>代理店コード</td>
<td align='center' bgcolor='#9999FF'>支払方法</td>
<td align='center' bgcolor='#9999FF'>支払日</td>
</tr>
</table>
</div>
<br/>
<input type='submit' id='output' name='output' value='Excel出力' />
<input type='button' id='print' name='print' value='スキャンアウト' onclick='printOut(block)' />
</form>
</body>
<script type='text/javascript'>addRow('0','dayang','','','','','','','0','');

</script>
</html>

And if the data is full-width or too long, it will change line with failed way. like:

    '9620001福島県須賀川市森宿
60-1'

The above line should be one line but it change line!

My web page is php, and I try several method to fix and nothing useful.
The error of php code is:

echo rtrim("<script type='text/javascript'>");
echo "addRow('";
echo $k;
echo "','";
echo $mail;
echo "','";
echo $name;
echo "','";
echo trim($addr);
echo "','";
echo $cell;
echo "','','','";
echo $shop;
echo "','";
echo $pay;
echo "','";
echo $date;
echo "');"."
</scr";
echo "ipt>"."
";
$k++;

The data is fetch from database, and I see the data in database doesn't have any change line character.

The problem I guess is that the data appended is too long, and it is full-width.

I know the problem is similar to others, but I have tried any others' method and the problem still can't be solved.

I tried use

and delete that line, or let my php file be utf-8 encoding.

Let tag be split like '' ......

Please help me!

  • 写回答

1条回答 默认 最新

  • dtvpe4837413 2013-04-15 07:12
    关注

    I find another way to solve the problem!

    I use $addr=str_replace(" ","\ ",$addrs);

    And there is in the data from database, I don't find that before.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码