Я новичок в этом php + HTML5 + jquery mobile, пытаясь создать веб-приложение с подключением mysql.PHP escaping complex string in echo
Где-то по пути ... Я использую php-файл для создания файла HTML, содержащего 3 окна выбора, где пользователю нужно будет выбрать день месяца для продолжения. Я разработал страницу назначения с помощью 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;) находится на новой линии Тем не менее, ничего не работает. Может ли кто-нибудь сказать мне, что я делаю неправильно? Любая помощь будет оценена по достоинству. Спасибо
Хорошо, вы поняли, что это единственный правильный способ. –
Меня интересовало решение для использования строки, которая имеет «и» внутри, и, кроме того, строка будет заключена в «или», чтобы быть полезной в синтаксисе, как в эхо. Если вы знаете, что я имею в виду ... К сожалению, я не видел решения для этого, и моя неудачная попытка использовать heredocs <<< не просветила меня. – user1137313