Php 无模型和无活动表单的验证码

Php 无模型和无活动表单的验证码,php,yii,Php,Yii,如果不使用模型规则和ActiveForms,如何使用CCaptcha 只需创建并检查。e、 g.通过AJAX我建议对表单使用Yii模型,即使您正在制作模式AJAX表单 只需绑定onsubmit方法,就可以使用表单数据进行ajax调用,而不是重新加载整个页面 我可以在此页面上向您展示此Ajax表单示例: 使用Yii并具有验证码 在本例中,它不是模态,而是带有captcha的Ajax表单 jQuery('#contactar_submit_btn').click(function(){ v

如果不使用模型规则和ActiveForms,如何使用CCaptcha


只需创建并检查。e、 g.通过AJAX

我建议对表单使用Yii模型,即使您正在制作模式AJAX表单

只需绑定onsubmit方法,就可以使用表单数据进行ajax调用,而不是重新加载整个页面

我可以在此页面上向您展示此Ajax表单示例:

使用Yii并具有验证码

在本例中,它不是模态,而是带有captcha的Ajax表单

jQuery('#contactar_submit_btn').click(function(){
    var submit_label = jQuery('#contactar_submit_btn').attr('value');
    jQuery('#contactar').ajaxSubmit(
      {'dataType': 'json', 'success': function(data) {
        jQuery('#contactar_submit_btn').attr('disabled', false);
        jQuery('#contactar_submit_btn').attr('value', submit_label);
        var timestamp = Number(new Date());
        var csrc = jQuery('#contactarCCaptcha').attr('src');
        jQuery('.captcha_image').attr('src',csrc+'?t='+timestamp);
        if (data.error.length > 0)
          alert(data.error);
        else {
          jQuery('#contactar_target').html(data.success);
          jQuery('#contactar').resetForm();
          jQuery('#contactar_target').show();
        }
      },
      'beforeSubmit': function() {
        jQuery('#contactar_target').hide();
        jQuery('#contactar_submit_btn').attr('value','enviando..');
        jQuery('#contactar_submit_btn').attr('disabled', true);
      }});
  });
使验证码正常工作的诀窍是使用原始url中的随机参数刷新图像。这是必需的,因为如果我们保持相同的图像但发送ajax请求,那么如果用户多次单击submit,则验证码将不匹配

我经常使用的另一种方法是: 1.在我通过ajax加载的控制器内创建完整的Yii表单,并在带有ID的模式中显示 2.单击submit时,对同一控制器进行ajax调用,并用ajax响应完全替换模式ID内容


希望它能对你有所帮助

例如,我有一个带有captcha字段的模式窗口,所以所有的数据传输都是简单的AJAX…我们能看到您正在使用的代码吗?如果你能告诉我们,我们可能会提供帮助。我有一个模式窗口,其中包含用户名和文本字段。获取XMLHttpRequest数据的Ajax处理程序。需要在表单上添加验证码。