katt
Новичок
Здравствуйте. Помогите пожалуйста начинающему php-программисту....
Есть файл php в котором выводится таблица (заполняется циклом while) со списком дисциплин (ссылки) и некоторыми данными по этим дисциплинам.
Под этой таблицей будет еще одна (данные в которой должны меняться без перезагрузки страницы), в ней данные по конкретной дисциплине (на которую кликнет пользователь из таблице выше).
Я начала это делать с помощью ajax. Т.е. к каждой дисциплине приставила форму (с type=hidden т.к. нужно передать некие параметры методом post), а название дисциплины это ссылка на скрипт.
Обработка ajax в скрипте
И передается в файл b_c.php
Вопрос:
При нажатии на любую дисциплину происходит обработка первой формы в таблице, а не той в которой нужная дисциплина. Т.е. не зависимо от того на какую дисциплину я нажму в <div id='result'> выводится один и тот же результат. Можно ли сделать одну форму на всю таблицу (т.е. будет два общих hidden), а номер дисциплины передать параметром <a href='javascript:run_script(номер дисциплины);'>.
Или может есть какие-нибудь другие выходы.....
Заранее спасибо за помощь....
Есть файл php в котором выводится таблица (заполняется циклом while) со списком дисциплин (ссылки) и некоторыми данными по этим дисциплинам.
Под этой таблицей будет еще одна (данные в которой должны меняться без перезагрузки страницы), в ней данные по конкретной дисциплине (на которую кликнет пользователь из таблице выше).
Я начала это делать с помощью ajax. Т.е. к каждой дисциплине приставила форму (с type=hidden т.к. нужно передать некие параметры методом post), а название дисциплины это ссылка на скрипт.
Код:
echo "<td><form action='b_c.php' method='post'>
<input type='hidden' value='".$tab_reyt['ST']."' id='area_1' name='area_1' >
<input type='hidden' value='".$tab_reyt['DT']."' id='area_2' name='area_2'>
<a href='javascript:run_script();'>'".$tab_reyt['DIS_NAME']."'</a></form></td>";
Код:
function run_script() {
var $result = $("#status");
$.ajax({
type: "POST", // - методом POST.
data: { // - получаем значения полей, данные.
"area_1": $('#area_1').val(),
"area_2": $('#area_2').val()
},
dataType: "html", // - тип HTML.
url: "b_c.php", // - скрипт PHP.
beforeSend: function() {
// Перед отправкой выведем уведомление:
$result.html('<img src="../images/1.gif">');
},
success: function(data) {
$result.html(data); // - выполнено.
},
});
}
Код:
<?php
//header("Content-type: text/plain; charset=utf-8");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
sleep(1);
# Параметры, передаваемые методом POST:
$area_1 = $_POST['area_1'];
$area_2 = $_POST['area_2'];
print "
<p>Выполнено успешно! Вы только, что отправили нам:</p>
<ul>
<li>$area_1</li>
<li>$area_2</li>
</ul>
";
?>
Данные второй таблице будут в <div>
Код:
echo "<div id='result'></div>";
При нажатии на любую дисциплину происходит обработка первой формы в таблице, а не той в которой нужная дисциплина. Т.е. не зависимо от того на какую дисциплину я нажму в <div id='result'> выводится один и тот же результат. Можно ли сделать одну форму на всю таблицу (т.е. будет два общих hidden), а номер дисциплины передать параметром <a href='javascript:run_script(номер дисциплины);'>.
Или может есть какие-нибудь другие выходы.....
Заранее спасибо за помощь....
Последнее редактирование: