Как я могу отправить информацию о форме из динамически заполненного div #printClass в другой div #dbmsg? - PullRequest
0 голосов
/ 16 января 2012

Я очень новичок в программировании php mysql ajax jquery, и у меня возникла проблема с загрузкой форм-данных addlabform из div в базу данных mysql, поэтому, если мой код длинноват, пожалуйста, прости. У меня есть php файл teacher.php, в котором есть div #printClass, к которому добавлена ​​форма значений флажков из getclass.php. Я хотел бы взять значения флажков и передать их в php-файл addlab.php, который будет загружен в другой файл div #dbmsg с сообщением. Я пытался использовать много разных методов и решил попробовать поработать с onclick и submit, но я не могу подобрать значения формы в первом сгенерированном div #printClass. Это мой HTML:

<div id="dbmsg"></div>This is 
<div id="printClass">Labid: 100Course: 11
<br>
<form name="addlabform">
<input name="classid" value="11" type="hidden">
<input onclick="submitit()" value="SubmitIt" type="submit">
<input onclick="additnow()" value="Add Labs" type="button">
<table border="1">
<tbody>
<tr>
<th>Lastname</th>
<th>Firstname</th>
<th>Taken</th>
<th>Date</th>
</tr>
<tr> 
<td>lastname1</td>
<td>firstname1</td>
<td align="center">
<input name="labdone" value="2191" id="2191" type="checkbox">
</td>
<td>
<i>Not Done</i>
</td>
</tr>
<tr> 
<td>lastname2</td>
<td>firstname2</td>
<td align="center">
<input name="labdone" value="2042" id="2042" type="checkbox">
</td>
<td>
<i>Not Done</i>
</td>
</tr>
</table>
<script src="jquery-1.7.1.min.js" type="text/javascript"></script>
<script>$("#printClass").ready(additnow())</script>
<script>$("#printClass").ready(submitit())</script>
<script>

    $(document).ready(function() {
    $("#addlabform").submit(function () {
    $.post("addlab.php", $("#addlabform").serialize(), function (data, textStatus) {
    $("#dbmsg").append(data);
    });
    return false;
    });
    });
</script>
</div>

У меня есть 3 функции get_check_values ​​(), addit () и submitit (). get_check_values ​​() предназначена для получения значений для значений флажка, который не работает. Ошибка сообщает, что document.printClass не определен. addit () работает при загрузке информации в div #dbmsg, но я не могу получить значения из #printClass, поэтому, пока get_check_values ​​не сработает, он застрянет. submitit () перезагружает исходный файл php с проверенными значениями в $ _REQUEST. Я бы предпочел использовать submitit (), потому что это сделало бы ненужным добавление всех входных значений в строку addit () xmlhttp.open. Вот функции:

<script type="text/javascript">
function get_check_values()
{
var c_value = "";
for (var i=0; i < document.printClass.addlabform.labdone.length; i++)
   {
   if (document.printClass.addlabform.labdone[i].checked) {
    c_value = c_value + document.printClass.addlabform.labdone[i].value;
    alert(c_value);
return false;

  }
}
}

function submitit() {
$(document).ready(function() {
$("#addlabform").submit(function () {
    $.post("addlab.php", $("#addlabform").serialize(), function (data, textStatus) {
        $("#dbmsg").append(data);
});
return false;
});
});
}    

function additnow() {
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("dbmsg").innerHTML=xmlhttp.responseText;
}
}
formvals = "tid=$tid";
var classid=encodeURIComponent(document.getElementById("printClass").value);
xmlhttp.open("GET","addlab.php?+tid=$tid&classid="+classid+formvals,true);
xmlhttp.send();
}

Любая помощь будет принята с благодарностью, так как я работаю над этим в течение нескольких дней.

1 Ответ

0 голосов
/ 16 января 2012

Я предлагаю просто использовать обычную форму для отправки:

Тогда ваша проблема становится чисто проблемой PHP.

Если по какой-то причине перезагрузка всей страницы бесполезна, вы можете использовать iframe.чтобы убедиться, что перезагружается только форма (все равно это будет вся форма):

<iframe src="addlab.php"></iframe>

Обязательно отметьте $_POST['submitbutton'] в своем PHP, чтобы проверить, какая кнопка отправки была нажата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...