私は文字列txtRowから行数を要求し、選択ボックスの行数を表示します。私の選択ボックスには、ID selID0、selID1、selID2 ...などがあります。次に、選択ボックスでオプションを選択します。次に、AJAXを使用して選択されていない選択ボックス(selID)を確認します。私はJavaScriptを使用してAjaxでデータの文字列を設定しています。JavaScriptを使用してAJAXのデータ文字列を入力できない
var kae = "";
for (i = 0; i< <%=sROW %>; i++){
var str = '"selID' + i + '":$("#selID' + i + '").val(),';
kae = kae + str
}`
$.ajax({
url : url_to,
type : 'POST',
data : { "txtRow":$("#txtRow").val(), kae
},
私はaspに投稿して何らかのチェックをします。私の選択ボックスの値が空の場合、私はすべての選択ボックス場合は、文字列
response.write "{ ""data"": { ""status"": ""errorInfo"" } }"
を返し、selID0、selID1、selID2は...ので、選択された行数に応じて、上のすべての選択されています。私は状態を確認し、それに応じて警告が表示されます、ページに戻る1アヤックスで
response.write "{ ""data"": { ""status"": ""ok "" } }"
文字列を返します。
ここで問題は、selID0、selID1値をpage2に渡すときに発生します。 forループを使用してデータを入力すると、ページ1の値を取得できません。しかし、私は以下のような文字列をハードコードしている場合。私はページ2の値を取得することができます。私はkae変数をチェックし、生成された文字列はOKですが、私はなぜ2ページに値を渡すことができないのか分かりませんか?助けてください、どうもありがとうございます。
"selID0":$("#selID0").val(),
"selID1":$("#selID1").val(),
、あなたはそれがです送信する必要が1
<%
sRow = Cint(request("txtRow"))
%>
<form name="form2" action="ax_test.asp" method="post">
<input type="hidden" id="txtRow" name="txtRow" value="<%=sRow%>" />
<table>
<% i=0
do while i < Cint(sROW)
response.write "<tr>"
response.write "<td>"
response.write " <select class='form-control' id='selID" & i & "' name='selID" & i & "'>"
response.write " <option value=''>Select</option>"
response.write " <option value='a'>a</option>"
response.write " <option value='b'>b</option>"
response.write " <option value='c'>c</option>"
response.write " <option value='d'>d</option>"
response.write " </select>"
response.write "</td>"
response.write "</tr>"
i=i+1
loop
%>
</table>
<button type="button" id="btnSave" name="btnSave" value="save" class="btn btn-default"
style="width: 90px" onclick="checkselect();">Save</button>
</form>
<script>
function checkselect() {
var url_to = 'ax_postcheckselect.asp';
var kae = "";
for (i = 0; i< <%=sROW %>; i++){
var str = '"selID' + i + '":$("#selID' + i + '").val(),';
kae = kae + str
}
$.ajax({
url : url_to,
type : 'POST',
data : { "txtRow":$("#txtRow").val(), kae
},
success : function(res){
if(res.data.status == "errorInfo"){
return alert('You miss selecting something ');
}else if(res.data.status == "ok") {
alert("Successfull.");
location.reload();
}
},
error : function(error){
console.log(error);
}
});
}
<%
Response.ContentType = "application/json"
Server.ScriptTimeout = 1000000
sRow = request("txtRow")
response.write "{ ""data"": { ""status"": """ & request("selID0") & """ } }"
response.end
bSelect = "Y"
i = 0
do while i < Cint(sRow)
sID = request("selID" & i)
if sID = "" then
bSelect = "N"
exit Do
end if
i = i + 1
loop
if bSelect = "N" then
response.write "{ ""data"": { ""status"": ""errorInfo"" } }"
response.end
else
response.write "{ ""data"": { ""status"": ""ok"" } }"
response.end
end if
%>
を経る必要がありますか?デフォルトでは1つのリクエストしか許可されていないため、AJAXリクエストがハングしている可能性があります。このサイトのアプリケーションプールの詳細設定でワーカープロセスの最大数を増やすことができます。 –
こんにちはリコさんの返信ありがとう、私はワーカープロセスの最大数を10に切り替えましたが、まだ動作していません。 –
申し訳ありません@Hansheung Cheah、私はページがあなたの説明から正確に何をすべきかはわかりません。しかし、あなたのページ内のハードコードされたオブジェクトがJavaScriptでFORループで構築されているという主な問題は、あなたのkae変数にはJavaScriptオブジェクトではなく文字列が含まれている可能性があります。私はブラウザのデバッガを使用してkae変数の内容とハードコードされたデータをチェックし、何が違うのかを確認します。 –