Как отправить несколько параметров в форме HTML при последующих запросах - PullRequest
0 голосов
/ 26 декабря 2010

У меня есть форма, которая передает параметры с использованием стандартных элементов управления HTML в файл PHP. Затем PHP-файл проходит через CSV-файл и возвращает результаты через AJAX. Если я выберу раскрывающееся меню из формы, я получаю данные без проблем, но когда я делаю другой выбор, он не запоминает то, что я выбрал ранее, поэтому передается только новый параметр. Как я могу обеспечить отправку предыдущих выбранных элементов управления? Любые идеи или предложения с благодарностью.

search.php:

<?php
error_reporting(E_ALL & ~E_NOTICE);
require_once('includes/MagicParser.php');
$key = $_GET['key'];
$search = $_GET['search'];
$counter = 0;
function recordHandler($record)
{
global $key;
global $search;
global $counter;

if ($record[$key] == $search) {
    if ($counter % 2) {
        print "<tr class=\"alt_row\">";
    } else {
        print "<tr>";
    }       
    print "<td>".$record['Subject']."</td>";
    print "<td>".$record['Tutor']."</td>";      
    print "<td>".$record['Level']."</td>";
    print "<td>".$record['Course Type']."</td>";
    print "<td>".$record['Course Code']."</td>";
    print "<td>".$record['Primary Center']."</td>";
    print "<td>".$record['Lesson 1 Date']."</td>";
    print "<td><a href=\"#\"></a></td>";
    print "<td><a href=\"#\"></a></td></td>";
    print "</tr>";
} else {
    return;
}
$counter ++;
}

print "
<table id=\"results\">
<tr>
       <th>Subject</th>
        <th>Tutor</th>
        <th>Level</th>
        <th>Type</th>
        <th>Code</th>
        <th>Center</th>
        <th>Date</th>
        <th>Timetable</th>
        <th>Outline</th>
</tr>
";

MagicParser_parse("includes/course-data.csv", "recordHandler");

print "
</table>
<div id=\"pager_display\"></div>
";
?>

scripts.js:

function showCourse(search, key)
{
if (search == "") {
    document.getElementById("dynamic_display").innerHTML = "";
    return;
}

if (window.XMLHttpRequest) {
    xmlhttp = new XMLHttpRequest();
} else {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.onreadystatechange = function()
{
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        document.getElementById("dynamic_display").innerHTML = xmlhttp.responseText;
        pager = new Pager('results', 15);
        pager.init(); 
        pager.showPageNav('pager', 'pager_display'); 
        pager.showPage(1);
    }
}

xmlhttp.open("GET", "search.php?key="+ key +"&search=" + search, true);
xmlhttp.send();
}

/*
function disableEnableForm(form, boolean)
{
var formElements = form.elements;

for (i = 0; i < form.length; i ++) {
    formElements[i].disabled = boolean;
}
}
*/

1 Ответ

0 голосов
/ 26 декабря 2010

Я бы сохранил их в $_SESSION.Тем не менее, даже после того, как вы возьмете это в квадрат, ваша базовая логика поиска не позволит использовать несколько параметров, поэтому вам также потребуется перенастроить это. Это может выглядеть примерно так:завершение Я не уверен, как именно работает ваш парсер и все эти забавные вещи - и это поддерживает только поиск AND - он будет возвращать только те строки, которые соответствуют всем предоставленным парам ключ-значение в поиске.Вам также необходимо реализовать что-то, чтобы очистить параметры поиска, чтобы пользователь тоже мог начать все сначала.Но вы должны быть тюком, чтобы получить основную идею ...

...