现在已经为此苦苦挣扎了几天。这是设置-我有一个父页面“ support.php”,其中包含选项卡,当您单击选项卡时,它会通过ajax引入适当的形式。
(每个部分的相关代码:)
AJAX页面上的表单输入
<input type="text" class="numbers" name="captchaImage" id="SupportNumbers" size="6" value="" readonly>
<input type="text" class="numbers" name="SupportMath" id="SupportMath" size="6" maxlength="6" tabindex="9">
父页面-support.php调用“ validation.js”,这是我的jQuery.validate脚本。
...
SupportMath: {
required: true,
equal: "<?php echo $randomNumTotal; ?>"
}
父页面上有一个用于文件“ random.php”的.get命令。
$.get('PHP/random.php', function (data){
$("#SupportNumbers").val(data);
});
<?php
$randomNum = rand(0,9);
$randomNum2 = rand(0,9);
echo $randomNum ."+". $randomNum2;
$randomNumTotal = $randomNum + $randomNum2;
?>
它会生成两个随机数,因此您可以将它们加在一起。验证检查以确保
正确生成两个数字。我只是似乎无法使所有这些片段都使用相同的数字,我可以使文本框“ SupportNumbers”填充两个随机数字,例如“ 2 + 5”,但是当我在“ #SupportMath”中输入“ 7”时它显示错误消息。它应该是$ randomNumTotal,但我无法将其显示到页面上,并让验证脚本对此进行检查。
帮帮我。
我意识到这很明显,所以请尝试解释更多
我的支持页面上有5个表格。为了减少混乱,我将它们放在垂直选项卡集中。我不希望页面上有我的js验证脚本,也不想由于我们在某些漫游器中遇到的一些问题而在页面上隐藏/显示所有5种形式。因此,我的解决方案是使用AJAX导入表单(完成)并仅链接至验证脚本(完成),除了我们的“随机数学验证码”外,其他所有操作都很好,我可以将其放入文件中并使用“ .get”命令填充包含两个随机数学问题的框,但无法获得答案进行验证。希望对您有所帮助,请在下面的代码中进行。
参考方案
说明:(逐步)
我们使用您的方法在页面加载时生成从1到9的两个随机数
我们添加了一个额外的输入<input type="hidden" name="math" id="math"/>
,因为您正在使用readonly
字段,所以此字段是必需的,现在readonly
字段不是通过表单提交的...这样,我们向用户显示了一个,而另一个隐藏,这将被提交;
我们得到的是#math
的string
值,例如:5+2
,因此我们需要将其转换为两个int
并将其求和。
最后,我们根据用户输入的SUM
检查#SupportMath
演示:https://so.lucafilosofi.com/php-jquery-validation/
PHP(检查与...的匹配项)
if ( isset($_POST['post']) ) {
$math = explode('+',trim($_POST['math']));
$sum = ( (int)$math[0] + (int)$math[1] );
$message = 'error';
if ( (int)$sum === (int)$_POST['SupportMath'] ) {
$message = 'success';
}
echo $message;
}
jQuery(伪代码...)
$(function() {
$.get('random.php',function(data) {
$("#SupportNumbers,#math").val(data);
});
$('#form').submit(function(e) {
e.preventDefault();
var query = $(this).serialize();
$.ajax({
type: "POST",
url: "post.php",
data: "post=post&" + query,
success: function(msg) {
if (msg.indexOf('success') == -1) {
alert('error');
} else {
alert('cURL');
}
}
});
});
});
的HTML
<input type="text" class="numbers" name="captchaImage" id="SupportNumbers" size="6" readonly>
<input type="hidden" name="math" id="math"/>
<input type="text" class="numbers" name="SupportMath" id="SupportMath" size="6" maxlength="6" tabindex="9">
PHP:将数组值加在一起 - php我相信这比标题听起来要难一些,但我可能完全错了。我有一个像这样的数组:[["londrina",15],["cascavel",34],["londrina",23],['tiradentes',34],['tiradentes',21]] 我希望能够采用通用…
PHP JQuery复选框 - php我有以下片段。 var myData = { video: $("input[name='video[]']:checked").serialize(), sinopse: $("#sinopse").val(), dia: $("#dia").val(), quem: $(…
PHP:获取调用引用的数组名称 - php假定以下函数并调用:function doSomething( &$someArray ) { // Do something to $someArray } $names=array("John", "Paul", "George", "Ringo"); doSomet…
如何从php中获取datatables jQuery插件的json数据 - php我是PHP的新手,正在尝试使用Datatables jQuery插件。我知道我必须从.php文件中获取数据,然后在数据表中使用它,但是我似乎无法通过ajax将其传递给数据表。我设法从数据库中获取数据,并对其进行json编码,但是后来我不知道如何在我的index.php文件中调用它,并在其中显示它。我究竟做错了什么?这是我的代码:HTML(已编辑): <…
PHP-MySQL结果转换为JSON - php我试图了解如何将MySQL结果转换为JSON格式,以便以后可以在Javascript中使用此JSON来构建HTML表。但是我的代码只是产生大量的空值,我还不明白为什么。$result = mysqli_query($con, "SELECT * FROM Customers"); $test = json_encode($result);…