Страница включает 2 шага в виде div, каждый из которых упоминается с идентификатором step1, step2. Я хочу, чтобы, когда я нажимаю кнопку (названную step1button) на шаге 1, данные на шаге 2 будут отображаться на основе данных, отправленных на шаге 1, но с использованием ajax.
Теперь проблема в том, что когда я отправляю данные через ajax, после этого запускается код Php, но значение переменных не отображается на шаге 2 на странице, а в режиме проверки в предварительном просмотре сети появляются значения.
код здесь
<!DOCTYPE html>
<html>
<head>
<script src = "plugins/jquery/jquery.min.js"></script>
</head>
<body>
<form method = "POST" id = "step1">
<select id = "coursename" name = "coursename">
<option>BCA</option>
<option>BBA</option>
</select>
<select id = "session" name = "session">
<option>2016</option>
<option>2017</option>
</select>
<button type = "button" id = "step1button" name = "step1button">NEXT</button>
</form>
<div id = "step2">
<h2>STEP-2</h2>
<?php
if (isset($_POST['step1'])) {
$coursename = $_REQUEST['coursename'];
$session= $_REQUEST['session'];
$startdate= $session.'-'.'8';
$enddate=date('Y-m');
$storestartdate=strtotime($startdate);
$storeenddate=strtotime($enddate);
$monthdiff= 0;
while (($storestartdate = strtotime('+1 MONTH', $storestartdate)) <= $storeenddate){
$monthdiff++;
}
switch ($monthdiff) {
case $monthdiff < 5:
$semester=1;
break;
case $monthdiff < 11:
$semester=2;
break;
case $monthdiff < 17:
$semester=3;
break;
case $monthdiff < 23:
$semester=4;
break;
case $monthdiff < 29:
$semester=5;
break;
case $monthdiff < 35:
$semester=6;
break;
}
}
?>
<div>CLASS <?php echo $coursename.$semester?></div>
<div>SESSION <?php echo $session?></div>
</div>
<script>
$(document).ready(function(){
$("#step1").show();
$("#step2").hide();
$("#step3").hide();
$("#step1button").click(function(){
var coursename = $("#coursename").val();
var session = $("#session").val();
console.info(coursename);
console.info(session);
if (coursename= = "" || session= = ""){
$("#alert").html("<div class='alert bg-pink'>Please select coursename and session</div>");
$("#coursename,#session").css('border-bottom','2px solid #E91E63');
}
else{
$.ajax({
method:'POST',
data:{step1:1,coursename:coursename,session:session},
success:function(){
$("#step2").show();
$("#step1").hide();
}
});
}
});
});
</script>
</body>
</html>
Также не включайте изображения кода. Он не может быть скопирован и не может быть прочитан людьми, использующими программы чтения с экрана.
Кроме того, вы можете отлаживать свой код Javascript, включая вставку точек останова, используя ответы из этот вопрос
хорошо, я воспроизведу свою проблему и отправлю ее снова






Вы публикуете только значения с помощью ajax, но не оцениваете ответ. Это не то, как работает ajax.
В настоящее время содержимое каждых трех шагов выполняется при первом рендеринге страницы. Но поскольку вы устанавливаете только $coursename и $step, при отправке $_POST['step1'] это оценивается как неопределенная ошибка переменной.
Итак, как вы могли бы исправить эту проблему? Есть два варианта (может и больше ..)
Запрос ajax возвращает содержимое шага 2/3 в своем ответе, и вы заменяете его внутри js success-функции.
Вы предварительно визуализируете другие шаги с фиктивными полями, а ответ ajax содержит данные json, которые можно использовать для заполнения фиктивных полей фактическим содержимым. Это также должно быть сделано внутри функции success.
В каждом случае, если вы хотите использовать ajax, вам также нужно позаботиться об ответе вашего ajax-запроса.
не могли бы вы помочь мне, изменив приведенный выше код в соответствии с вами
Решение вашей проблемы слишком велико для этой платформы. Я могу только дать вам совет, чтобы начать с простого учебника по ajax, чтобы изучить основы. Оттуда вы можете продолжить и задать конкретные вопросы.
Добро пожаловать в Stack Overflow! Ваш Код довольно длинный и не самодостаточный. Например, что написано в
common_php_files/as_head.php? Если другие люди не могут воспроизвести вашу проблему, они, вероятно, не смогут вам помочь. Поэтому я рекомендую вам предпринять несколько шагов, чтобы улучшить свой вопрос. (1) Обязательно возьмите тур и прочтите наше руководство для начинающих Как спросить. (2) Создайте уменьшенную версию своего кода, имеющую ту же проблему и которую каждый может запустить на своих машинах. Если другие могут ее запустить, они могут возиться, пока не решат ее.