Bootstrap 表单未检索 SolveMedia POST 数据
Bootstrap form doesn't retrieve SolveMedia POST data
我已经在 Bootstrap 模式中为用户帐户注册创建了一个表单:
<div class="modal-body">
<form class="form-horizontal" id="registerForm">
<div class="form-group">
<label for="newUsername" class="control-label col-xs-3">Username</label>
<div class="col-xs-9">
<input type="text" class="form-control" id="newUsername" required>
</div>
</div>
<div class="form-group">
<label for="newPassword" class="control-label col-xs-3">Password</label>
<div class="col-xs-9">
<input type="password" class="form-control" id="newPassword" required>
</div>
</div>
<div class="form-group">
<label for="newPassword2" class="control-label col-xs-3">Password</label>
<div class="col-xs-9">
<input type="password" class="form-control" id="newPassword2" required>
</div>
</div>
<div class="form-group">
<label for="newEmail" class="control-label col-xs-3">E-mail</label>
<div class="col-xs-9">
<input type="email" class="form-control" id="newEmail" required>
</div>
</div>
</form>
</div>
Ajax
$(document).on('submit', '#registerForm', function () {
var username = $("#newUsername").val();
var password = $("#newPassword").val();
var email = $("#newEmail").val();
$.post("registration.php", { new_user: username, new_psw: password, new_email: email}, function(data) {
var result = $.parseJSON(data);
if (result.error) {
if (result.err_code == 1) {
$('#newUsername').css({"border": "2px solid red", "box-shadow": "0 0 3px red"});
}
else if (result.err_code == 2) {
$('#newEmail').css({"border": "2px solid red", "box-shadow": "0 0 3px red"});
}
}
});
event.preventDefault();
});
我想集成 SolveMedia 验证码,我按照以下步骤进行操作:https://portal.solvemedia.com/portal/help/pub/php/
所以我在 </form>
标签之前添加了以下代码:
<div class="form-group">
<label class="control-label col-xs-3">Captcha code</label>
<div class="col-xs-9">
<?php echo solvemedia_get_html("my_key"); ?>
</div>
</div>
HTML <?php echo solvemedia_get_html("my_key"); ?>
的输出
<textarea name="adcopy_challenge" rows="3" cols="40"></textarea>
<input type="hidden" name="adcopy_response" value="manual_challenge"/>
问题是表单处理文件没有检索到 SolveMedia POST 字段:
$_POST["adcopy_challenge"]
$_POST["adcopy_response"]
在 SolveMedia library file 中(我包含在我的 PHP 文件中)。
所以我的表单发送了除 SolveMedia POST 值之外的所有值。
根据帮助部分 (https://solvemedia.zendesk.com/hc/en-us/articles/203660514-Always-Receiving-incorrect-solution-),我必须确保表单包含 POST 方法。 Bootstrap 表格中缺失的 method="POST"
可能是问题所在吗?
以下是 Ajax 提交表单的代码
$(document).on('submit', '#registerForm', function () {
var username = $("#newUsername").val();
var password = $("#newPassword").val();
var email = $("#newEmail").val();
$.post("registration.php", { new_user: username, new_psw: password, new_email: email}, function(data) {
var result = $.parseJSON(data);
if (result.error) {
if (result.err_code == 1) {
$('#newUsername').css({"border": "2px solid red", "box-shadow": "0 0 3px red"});
}
else if (result.err_code == 2) {
$('#newEmail').css({"border": "2px solid red", "box-shadow": "0 0 3px red"});
}
}
});
event.preventDefault();
});
如果仔细观察,您已经为 username
、password
和 email
每个创建了 3 个 var
,但是 var
没有19=] 你需要创造 SolveMedia POST fields
喜欢
var username = $("#newUsername").val();
var password = $("#newPassword").val();
var email = $("#newEmail").val();
var challenge = $("[name='adcopy_challenge']").val();
var response = $("[name='adcopy_response']").val();
一旦你将创建 SolveMedia POST fields var
post 它的值与 Ajax 以及其他输入值
$.post("registration.php", { new_user: username, new_psw: password, new_email: email, challenge: adcopychallenge, response: adcopyresponse }
和 PHP 端获取 SolveMedia POST fields
的值
$_POST["adcopychallenge"]
$_POST["adcopyresponse"]
我已经在 Bootstrap 模式中为用户帐户注册创建了一个表单:
<div class="modal-body">
<form class="form-horizontal" id="registerForm">
<div class="form-group">
<label for="newUsername" class="control-label col-xs-3">Username</label>
<div class="col-xs-9">
<input type="text" class="form-control" id="newUsername" required>
</div>
</div>
<div class="form-group">
<label for="newPassword" class="control-label col-xs-3">Password</label>
<div class="col-xs-9">
<input type="password" class="form-control" id="newPassword" required>
</div>
</div>
<div class="form-group">
<label for="newPassword2" class="control-label col-xs-3">Password</label>
<div class="col-xs-9">
<input type="password" class="form-control" id="newPassword2" required>
</div>
</div>
<div class="form-group">
<label for="newEmail" class="control-label col-xs-3">E-mail</label>
<div class="col-xs-9">
<input type="email" class="form-control" id="newEmail" required>
</div>
</div>
</form>
</div>
Ajax
$(document).on('submit', '#registerForm', function () {
var username = $("#newUsername").val();
var password = $("#newPassword").val();
var email = $("#newEmail").val();
$.post("registration.php", { new_user: username, new_psw: password, new_email: email}, function(data) {
var result = $.parseJSON(data);
if (result.error) {
if (result.err_code == 1) {
$('#newUsername').css({"border": "2px solid red", "box-shadow": "0 0 3px red"});
}
else if (result.err_code == 2) {
$('#newEmail').css({"border": "2px solid red", "box-shadow": "0 0 3px red"});
}
}
});
event.preventDefault();
});
我想集成 SolveMedia 验证码,我按照以下步骤进行操作:https://portal.solvemedia.com/portal/help/pub/php/
所以我在 </form>
标签之前添加了以下代码:
<div class="form-group">
<label class="control-label col-xs-3">Captcha code</label>
<div class="col-xs-9">
<?php echo solvemedia_get_html("my_key"); ?>
</div>
</div>
HTML <?php echo solvemedia_get_html("my_key"); ?>
<textarea name="adcopy_challenge" rows="3" cols="40"></textarea>
<input type="hidden" name="adcopy_response" value="manual_challenge"/>
问题是表单处理文件没有检索到 SolveMedia POST 字段:
$_POST["adcopy_challenge"]
$_POST["adcopy_response"]
在 SolveMedia library file 中(我包含在我的 PHP 文件中)。
所以我的表单发送了除 SolveMedia POST 值之外的所有值。
根据帮助部分 (https://solvemedia.zendesk.com/hc/en-us/articles/203660514-Always-Receiving-incorrect-solution-),我必须确保表单包含 POST 方法。 Bootstrap 表格中缺失的 method="POST"
可能是问题所在吗?
以下是 Ajax 提交表单的代码
$(document).on('submit', '#registerForm', function () {
var username = $("#newUsername").val();
var password = $("#newPassword").val();
var email = $("#newEmail").val();
$.post("registration.php", { new_user: username, new_psw: password, new_email: email}, function(data) {
var result = $.parseJSON(data);
if (result.error) {
if (result.err_code == 1) {
$('#newUsername').css({"border": "2px solid red", "box-shadow": "0 0 3px red"});
}
else if (result.err_code == 2) {
$('#newEmail').css({"border": "2px solid red", "box-shadow": "0 0 3px red"});
}
}
});
event.preventDefault();
});
如果仔细观察,您已经为 username
、password
和 email
每个创建了 3 个 var
,但是 var
没有19=] 你需要创造 SolveMedia POST fields
喜欢
var username = $("#newUsername").val();
var password = $("#newPassword").val();
var email = $("#newEmail").val();
var challenge = $("[name='adcopy_challenge']").val();
var response = $("[name='adcopy_response']").val();
一旦你将创建 SolveMedia POST fields var
post 它的值与 Ajax 以及其他输入值
$.post("registration.php", { new_user: username, new_psw: password, new_email: email, challenge: adcopychallenge, response: adcopyresponse }
和 PHP 端获取 SolveMedia POST fields
$_POST["adcopychallenge"]
$_POST["adcopyresponse"]