Отображать php с помощью javascript

<p>Todays Date: <? echo $date; ?></p> <p>Are you applying for a day, evening, or weekend class? <select name='date' id='wclass'> <option value ='day'> Day</option> <option value ='evening'>Evening</option> <option value ='weekend'>Weekend</option> </select> Program Start Date: <div id='dates'></div> <script language="javascript"> $(document).ready(function() { { setInterval(function () { if ($("#wclass").val()=='day') { $('#dates').html("<? echo <select name='date'> <option value ='date1'> $start1 </option> <option value ='date2'>$start2</option> <option value ='date3'>$start3</option> <option value ='date4'>$start4</option> <option value ='date5'>$start5</option> <option value ='date6'>$start6</option> <option value ='date7'>$start7</option> </select> }?>");} }, 1000); }); 

Моя проблема в том, что я не уверен, как отображать php с помощью javascript. Все переменные правильны, проблема заключается в том, чтобы заставить php отображать как html в моем .html. Все, что я хочу сделать, это показать переменные php, которые я получил в начале. Итак, переменные были определены в php, теперь я хочу превратить их в список html на основе моего javascript. Вы можете заметить, что в эхе отсутствуют кавычки, потому что я не знаю, как поставить кавычки, я не могу использовать " или ' потому что они оба interup цитируют, которые уже есть.

Ваш javascript не имеет доступа к вашим переменным PHP, если вы не запросите их через AJAX .

Однако вам не нужно использовать AJAX. Вы можете использовать свой PHP-код для создания кода Javascript до его отправки в браузер!

Вот один из способов сделать это:

 <?php $start1 = '01/01/2010'; $start2 = '11/11/2010'; $start3 = '03/12/2010'; // and so on... ?> <p>Today's Date: <?php echo $date; ?></p> <p>Are you applying for a day, evening, or weekend class?</p> <select name="date" id="wclass"> <option value="day">Day</option> <option value="evening">Evening</option> <option value="weekend">Weekend</option> </select> Program Start Date: <div id="dates"></div> <script language="javascript"> $(document).ready(function() { { $("#wclass").change(function () { if( $(this).val() == 'day' ) { $('#dates').html('<select name="date">\ <option value="date1"><?php echo $start1; ?></option>\ <option value="date2"><?php echo $start2; ?></option>\ <option value="date3"><?php echo $start3; ?></option>\ <option value="date4"><?php echo $start4; ?></option>\ <option value="date5"><?php echo $start5; ?></option>\ <option value="date6"><?php echo $start6; ?></option>\ <option value="date7"><?php echo $start7; ?></option>\ </select>'); } }); }); </script> 

Еще лучшим вариантом было бы просто создать второй select прямо, а затем показать / скрыть его при необходимости:

 <?php $start1 = '01/01/2010'; $start2 = '11/11/2010'; $start3 = '03/12/2010'; // and so on... ?> <p>Today's Date: <?php echo $date; ?></p> <p>Are you applying for a day, evening, or weekend class?</p> <select name="date" id="wclass"> <option value="day" selected="selected">Day</option> <option value="evening">Evening</option> <option value="weekend">Weekend</option> </select> Program Start Date: <select id="dates" name="date"> <option value="date1"><?php echo $start1; ?></option> <option value="date2"><?php echo $start2; ?></option> <option value="date3"><?php echo $start3; ?></option> <option value="date4"><?php echo $start4; ?></option> <option value="date5"><?php echo $start5; ?></option> <option value="date6"><?php echo $start6; ?></option> <option value="date7"><?php echo $start7; ?></option> </select> <script language="javascript"> $(document).ready(function() { { $("#wclass").change(function () { $(this).val() == 'day' ? $('#dates').show() : $('#dates').hide() }); }); </script> 

PHP – это серверный язык. PHP выполняется сервером, и результат (обычно некоторый HTML) отправляется клиенту для отображения. Если вы пытаетесь отобразить PHP-код буквально, то это определенно возможно. Однако у меня возникает ощущение, что вы пытаетесь выполнить PHP-код в Javascript. Вы не можете этого сделать, потому что Javascript выполняется на стороне клиента, то есть после того, как страница уже отправлена ​​в браузер клиента с сервера.

Понимаете ли вы, различие между запуском скриптов на сервере и запуском HTML / JavaScript на веб-клиенте?

PHP выполняется на сервере. Он отображает HTML и JS. Затем HTML / JS переходит к средству просмотра (веб-клиенту) и выполняется на компьютере клиента … Вы не можете «запускать PHP внутри JS» так, как хотите.

Если вам нужны данные из PHP, введенного в ваш JS-код, вы можете попробовать запустить AJAX.

Контрольный список простых, простых вещей, которые мы не хотим игнорировать:

  • Вы сохранили файл с расширением .php.
  • Включены короткие теги.

Это должно сработать. Убедитесь, что он сохранен как .php-файл, и вы должны быть хорошими. О, и желательно использовать <?php .. ?> Вместо <? ?> <? ?> поскольку шорттаты рекомендуются по соображениям совместимости.

Примечание. Если ваш PHP действительно выполнял, вы получали бы синтаксические ошибки, брошенные на вашу страницу, потому что ваше echo не содержит строки в кавычках, между прочим.