페이지의 여러 가지 요소를 이끌어내는 주요 선택 목록이 있습니다. 코스를 선택하면 다른 선택리스트가 코스 시작 날짜와 함께 최대 6 개월 전에 미리 채워집니다. 또한 페이지에 학생 이름과 전화 번호가있는 테이블이 있습니다. 코스를 선택하면 해당 코스에 등록한 모든 학생이 테이블에 다시 채워집니다. 내 문제는 PHP에서 JSON, 즉 학생과 시작 날짜를 통해 다양한 다양한 것들을 얻게 될 것입니다. 따라서 어떻게 jQuery에 둘 이상의 것을 전달할 수 있습니까? 코스 선택리스트가 2, 3, 5 또는 심지어 10의 2 가지 영향을받는다면 어떨까요? PHP와 jQuery로 어떻게 처리 할 수 있습니까?PHP에서 jQuery/AJAX로 여러 데이터를 전달하려면 어떻게해야합니까?
foreach($m as $meta)
{
$metaCourse = $this->getCourseInfo($meta['parent_course']);
//populate the select list with the name of each course
$metaSelectList .= '<option id="select'.$count.'" value="'.$metaCourse['id'].'">'.$metaCourse['fullname'].'</option>';
$count++;
//get only the first course's dates
if($count3 == 1)
{
$startDate = intval($course->getStartDate(50));
$endDate = strtotime('+6 month', $startDate);
//populates the select list with the starting date of the course up to the next six months
for($date = $startDate; $date <= $endDate ; $date = strtotime('+1 day', $date))
{
$dateSelectList .= '<option id="select'.$count2.'" value="'.$date.'">'.date('D d F Y', $date).'</option>';
$count2++;
}
$count3++;
$students = $s->getStudents($metaCourse['id']);
$content = $this->createStudentTable($students);
}
}
이것은 (난 아직도 jQuery를에 여러 데이터를 전달하는 방법을 알아 내려고 노력하고있어 나는 아직 학생 테이블을 구현하지 않은) 지금은 ... AJAX에 대한 내 처리기입니다. 기본적으로 코스가 선택 될 때마다 PHP는 적절한 날짜로 새 선택 목록을 만든 다음 jQuery로 전달합니다. JavaScript 또는 PHP에서이 작업을 수행해야하는지 잘 모르겠습니다.
if (isset($_GET['pid']) && (isset($_GET['ajax']) && $_GET['ajax'] == "true"))//this is for lesson select list
{
$pid = intval($_GET['pid']);
$c = new CourseCreator();
$startDate = intval($c->getStartDate($pid));
$endDate = strtotime('+6 month', $startDate);
$dateSelectList = '<select name="dateSelect" id="dateSelect">';
//populates the select list with the starting date of the course up to the next six months
for($date = $startDate; $date <= $endDate ; $date = strtotime('+1 day', $date))
{
$dateSelectList .= '<option id="select'.$count2.'" value="'.$date.'">'.date('D d F Y', $date).'</option>';
$count2++;
}
$dateSelectList .= '</select>';
echo json_encode($dateSelectList);
exit;
}
내 jQuery를 핸들러 :
$('#metaSelect').live('change', function()
{
$.getJSON('?ajax=true&pid='+$('#metaSelect').val(), function(data)
{
alert(data);
$('#dateSelectDiv').html(data);
});
});
덕분에 : 네, 그래서 백엔드에서 HTML을 생성하지 않습니다 jQuery를에 모든 PHP 물건을 이동하는 것입니다 내 계획입니다. 방금 jQuery에 큰 데이터를 전달하는 방법을 찾아야했습니다. –
방금 스 니펫을 구현했으며 환상적으로 작동합니다. 고마워요 :) –
달콤한, 듣고 다행 :) – DdD