2012-01-15 13 views
-2

私はphp mysql ajax jqueryプログラミングに非常に慣れていて、addlabformのformdataをdivからmysqlデータベースにロードする際に問題が発生しているので、コードがlongwindedであれば、許してください。私はgetclass.phpからのチェックボックスの値の形で追加されたdiv #printClassを持つphpファイルのteacher.phpを持っています。私はチェックボックスの値を取って、別のdiv #dbmsgにメッセージとともにロードするPHPファイルaddlab.phpに渡したいと思います。私は多くの異なるメソッドを使用しようとし、onclickと提出を使用しようとして解決しましたが、最初に生成されたdiv #printClassでフォームの値を取り上げることはできません。これは私のhtmlです:動的に生成されたdiv #printClassから別のdiv #dbmsgにフォーム情報を送信するにはどうすればよいですか?

<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()はチェックボックスの値を取得するためのもので、動作しません。consoleは、document.printClassが定義されていないとエラーを返します。 addit()はdiv #dbmsgに情報を読み込む際に機能しますが、get_check_valuesが機能しなくなるまで#printClassから値を取得できません。 submitit()は$ _REQUESTのチェックされた値を元のPHPファイルにリロードします。 addit()xmlhttp.open行にすべての入力値を追加する必要がないため、submitit()を使用することをお勧めします。ここでの機能は以下のとおりです。私は日のためにこれに取り組んできたよう

<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(); 
} 

任意の助けをいただければ幸いです。私は普通のフォームを使用することをお勧め

答えて

0

は提出: は

あなたの問題は、純粋にPHPの問題となります。

ページ全体をリロードするいくつかの理由は良いがないなら、あなたは(それはまだかかわらず、全体の形になるでしょう)のみフォームがリロードされることを保証するためにはiframeを使用することができます。

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

をしてPHPの$_POST['submitbutton']をチェックして、どの送信ボタンがクリックされたかを確認してください。

+0

応答ありがとうございます...ページを再読み込みすると、私のために動作しません。 jqueryを使ってフォームの値にアクセスする方法を知っていますか?そうすれば、フォームのチェックボックスの値にアクセスすることができます。 – poyser

関連する問題