Ich habe eine Hauptauswahlliste von Kursen, die verschiedene Dinge auf einer Seite antreibt. Wenn ein Kurs ausgewählt wird, wird eine weitere Auswahlliste mit dem Startdatum des Kurses bis zu 6 Monate im Voraus neu gefüllt. Außerdem habe ich eine Tabelle auf der Seite mit dem Namen und der Telefonnummer des Schülers. Wenn ein Kurs ausgewählt wird, wird der Tisch mit allen Schülern neu gefüllt, die sich für diesen Kurs angemeldet haben. Mein Problem ist, dass ich verschiedene Dinge von PHP über JSON bekommen werde, also die Studenten und das Startdatum. Wie kann ich also mehr als eine Sache an jQuery weitergeben? Was, wenn die Kursauswahlliste nicht nur 2 Dinge betrifft, sondern 3, 5 oder sogar 10? Wie würden wir das mit PHP und jQuery handhaben?Wie kann ich mehrere Daten von PHP an jQuery/AJAX übergeben?
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);
}
}
Dies ist mein Handler für die AJAX ... FOR NOW (ich nicht die Studenten Tabelle noch nicht umgesetzt haben, wie ich bin immer noch versuchen, herauszufinden, wie mehrere Stücke von Daten zu jQuery passieren). Jedes Mal, wenn ein Kurs ausgewählt wird, erstellt PHP eine neue Auswahlliste mit den entsprechenden Daten und übergibt sie dann an jQuery. Ich bin mir nicht sicher, ob ich das in JavaScript oder in PHP machen sollte.
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;
}
Meine jQuery-Handler:
$('#metaSelect').live('change', function()
{
$.getJSON('?ajax=true&pid='+$('#metaSelect').val(), function(data)
{
alert(data);
$('#dateSelectDiv').html(data);
});
});
Thanks :) Ja, das ist mein Plan, die alles, was PHP Zeug zu jQuery zu bewegen ist, damit ich nicht HTML im Backend werden zu generieren. Ich musste nur einen Weg finden, um große Daten an jQuery –
zu übergeben Ich habe gerade Ihre Schnipsel implementiert und sie arbeiten fantastisch. Vielen Dank :) –
süß, froh, das zu hören :) – DdD