我有第1页,它将从字符串txtRow请求行数并显示选择框的行数。我的选择框将具有ID selID0,selID1,selID2 ......等等,具体取决于行数。然后,用户将在选择框中选择选项。然后,我想检查用户是否使用AJAX选择了哪个选择框(selID)。我正在使用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等等都取决于所选的行数,则全部被选中。我将返回一个字符串
response.write "{ ""data"": { ""status"": ""ok "" } }"
回到第1页Ajax,我将检查状态并相应地显示警报。
现在将selID0,selID1值传递给page2时出现问题。如果我使用for循环来填充数据,那么第2页无法从第1页获取值。但是,如果我像下面那样硬编码字符串。我可以设法获得第2页的值。我检查了kae变量,生成的字符串是正常的,但我不知道为什么我无法将值传递给第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);
}
});
}
第2页的完整代码
<%
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
%>
答案 0 :(得分:0)
您必须发送字符串$("#selID0").val()
,而不是发送字符串var str = '"selID' + i + '":$("#selID' + i + '").val(),';
。
即改变:
var str = '"selID' + i + '":"' + $("#selID" + i).val() + '",';
为:
kae
检查网络选项卡,查看要发送到page2的值。您应该看到一个名为 <com.custom.views.CustomTextView
android:id="@+id/txt_send_chat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:maxWidth="250dp"
android:textColor="@color/color_chat_sender"
android:textSize="16sp"
app:font_name="@string/font_roboto_regular" />
的字段,其中包含所有这些selxx值。您必须更改page2才能访问这些值。
如果您还没有,则应通过the documentation on $.ajax