0

这是我的应用程序的屏幕截图。

在此处输入图像描述

我的数据库中有超过 70000 条记录,最终用户有机会重新输入存储在数据库中的相同数据,标题是我的应用程序中的唯一字段。所以我想在模糊操作中限制标题的重复值。

例如,我已经使用标题的输入值测试了值数组,如下所示

     <script>
     function myFunction()
     {  
      var names = <?php json_encode($test); ?>;
      var x=document.getElementById("title").value;  
      for (i=0; i < names.length; i++)
      { 
      if (x == names[i])
      { 
       alert("Duplicates Found");
      }    
      }     
      }
    </script>

    $test = array("title1","title2");

但我无法与 db 值进行比较,任何帮助将不胜感激..在此先感谢..

4

1 回答 1

1

@MESSIAH 我相信这个人使用 yii。mysql?真的吗?它已经被弃用了。

SELECT 1 FROM table WHERE field=$parameter

这是唯一检查查询的样子。请不要使用这个丑陋的代码。

例如,这就是您的表单 init 的外观:

<?php $form = $this->beginWidget('CActiveForm', array(
            'id' => 'feeds-form',
            'enableClientValidation' => true,
            'enableAjaxValidation' => true,

            'clientOptions' => array(
                'validateOnSubmit' => true,))); ?>

在你的控制器中使用这样的东西:

if(Yii::app()->request->isAjaxRequest)
        {
            $error=CActiveForm::validate($model);
            if($error!='[]'){
                echo $error;
                Yii::app()->end();
                $flag=false;
            }
        }

它在您的情况下执行 ajax 验证功能。您可以将它添加到一些新功能或在您的操作开始时添加。要执行保存,请使用以下内容:

if(isset($_POST['Feeds'])&& ($_POST['ajax']!='feeds-form'))
//$model->save() or do whatever you want here 

如果您需要完全控制您的错误等等,请使用 ajaxSubmitButton:

 <?php echo CHtml::ajaxSubmitButton($model->isNewRecord ? 'Create' : 'Save', Yii::app()->request->url, array(
                'dataType' => 'json',
                'type' => 'post',
                'success' =>
                'js:function (data) {

                 if(!$.isEmptyObject(data)) {
                      $.each(data, function(key, val) {//adding errors to error div wrapper here
                                $("#feeds-form #"+key+"_em_").text(val+" ");
                                $("#feeds-form #"+key+"_em_").parent(".error_wrapter").addClass("error");
                                $("#feeds-form #"+key+"_em_").css(\'display\',\'block\');
                                      });
                  };
                 if(data.status=="success"){
                                           hideAllMessages();
                                          setTimeout(function(){
                                            $(\'.\'+\'success_not\').fadeOut(700);
                                          },6000);
                                            $(\'.\'+\'success_not\').fadeIn({top:"0", left:"0"}, 700);
                                        }
                else {
                      hideAllMessages();
                       setTimeout(function(){$(\'.\'+\'fail\').fadeOut(700);},6000);
                    $(\'.\'+\'fail\').fadeIn({top:"0", left:"0"}, 700);
                  };
                  }',
            ), array(
                'id' => 'feeds-form_submit_' . rand(1, 255), // Need a unique id or they start to conflict with more than one load.
            ));?>

在您的模型中,您需要为您的标题设置规则:

public function rules()
    {
        return array(
            array('title', 'unique'),
              ..............
        );
    }

现在它完成了。

如果您不了解某些内容,这里是提示。 http://www.yiiframework.com/forum/index.php/topic/37075-form-validation-with-ajaxsubmitbutton/

于 2013-07-22T10:55:47.760 回答