我是这个 php+HTML5+jquery 移动设备的新手,试图用 mysql 连接构建一个 Web 应用程序。
一路走来……我使用一个 php 文件来“生成”一个包含 3 个选择框的 HTML 文件,用户必须在其中选择一个月中的某一天才能继续。我使用 javascript + HTML 设计了目标页面,一切顺利,然后我在一个 php 文件中回显了整个页面(我调用 + 处理某些东西以接收页面)。我遇到的问题是我想转义一个字符串。我的意思是,如果我评论这些行,页面就会正常工作(不是应该的,但至少会显示页面)。如果我不评论它们,jquery 会显示一个警告,说“加载页面错误”
工作得很好的html是:
<html>
<head>
<title>Select</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js" />
</head>
<body>
<span id="day-select">
<select id="day">
<script type="text/javascript">
function LastDayOfMonth(Year, Month) {
return new Date( (new Date(Year, Month+1,1))-1 );
}
var nextmonth = new Date();
nextmonth.setHours(0, 0, 0, 0);
nextmonth.setMonth( nextmonth.getMonth() + 1 );
var nextziua = nextmonth.getDate();
var ultimazidt = LastDayOfMonth(nextmonth.getFullYear(), nextmonth.getMonth());
var ultimazi = ultimazidt.getDate();
var ziuaselect = nextziua;
var count = ultimazi;
var ziua=1;
while(ziua <= count){
if(ziua == nextziua){
document.write('<option value="'+ziua+'" selected="selected">'+ziua+'</option>');
}
else{
document.write('<option value="'+ziua+'">'+ziua+'</option>');
}
ziua++;
}
</script>
</select>
</span>
<br><br>
</body>
</html>
所以,上面的 html 文件......工作得很好,但是当我从 PHP 文件中的回显中尝试它时,一切都在这一行陷入困境:
document.write('<option value="'+ziua+'" selected="selected">'+ziua+'</option>');
我是说:
echo ' <html>';
echo ' <head>';
echo ' <title>Select</title>';
echo ' <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>';
echo ' </head>';
echo ' <body>';
echo ' <span id="day-select">';
echo ' <select id="day">';
echo ' <script type="text/javascript">';
echo ' function LastDayOfMonth(Year, Month) {';
echo ' return new Date( (new Date(Year, Month+1,1))-1 );';
echo ' } ';
echo ' var nextmonth = new Date();';
echo ' nextmonth.setHours(0, 0, 0, 0);';
echo ' nextmonth.setMonth( nextmonth.getMonth() + 1 );';
echo ' var nextziua = nextmonth.getDate();';
echo ' var ultimazidt = LastDayOfMonth(nextmonth.getFullYear(), nextmonth.getMonth());';
echo ' var ultimazi = ultimazidt.getDate();';
echo ' var ziuaselect = nextziua;';
echo ' var count = ultimazi;';
echo ' var ziua=1;';
echo ' while(ziua <= count){';
echo ' if(ziua == nextziua){';
echo <<<EOT
document.write('<option value="'+ziua+'" selected="selected">'+ziua+'</option>');
EOT;
echo ' }';
echo ' else{';
echo <<<EOT
document.write('<option value="'+ziua+'">'+ziua+'</option>');
EOT;
echo ' }';
echo ' ziua++;';
echo ' }';
echo ' </script>';
echo ' </select>';
echo ' </span>';
echo ' <br><br>';
echo ' </body>';
echo ' </html>';
因此,这段代码生成了一个 SELECT 框的内容,日期编号为 1-30、1-31 或 1-29,具体取决于月份。它还使当前日期“选中”。再次......直接在 HTML 中执行时一切正常,但是当我尝试回应它时......一切都停止了。因为那个文件写的。我尝试转义单引号或转义双引号。结果相同。这就是我采用 heredocs 方法的原因。但它似乎对我的问题仍然无用。我注意了 heredocs 语法: - 后面没有空格
<<<EOT
最终 EOT 后没有空格;
最后一个(EOT;)在新线上仍然没有任何作用。谁能告诉我我做错了什么?任何帮助将不胜感激。谢谢