小编GST*_*TAR的帖子

MySQL外键约束 - 整数列

我有一个整数列,我想添加一个外键约束.唯一的问题是,如果该列没有/需要一个值,默认情况下MySQL会输入一个'0'值.这显然打破了外键约束,因为主表中没有PK为0的记录.

我怎样才能克服这个问题?

mysql sql foreign-keys

9
推荐指数
1
解决办法
2529
查看次数

使用按钮的水平滚动div

如何在DIV上设置左右按钮以水平滚动内容?我不需要显示滚动条.

HMTL:

<div id="browser">
  <a href="#" id="left-button"><img src="left-button.jpg" /></a>
  <img src="thumb_1.jpg" />
  <img src="thumb_2.jpg" />
  <img src="thumb_3.jpg" /> 
  <img src="thumb_4.jpg" />
  <img src="thumb_5.jpg" />
  <img src="thumb_6.jpg" />
  <a href="#" id="right-button"><img src="right-button.jpg" /></a>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

#browser { float: left; width: 200px; overflow: hidden; white-space: nowrap; }
Run Code Online (Sandbox Code Playgroud)

jquery

9
推荐指数
1
解决办法
4万
查看次数

Yii2 - 基本应用程序模板中的模块登录

使用"基本"应用程序模板,设置与主站点登录分开的模块登录的正确方法是什么?

例如,我有一个"admin"模块,需要登录.我还需要用户登录主站点.

我做了以下事情:

  1. admin使用gii工具创建模块
  2. modelsadmin模块文件夹中创建文件夹
  3. 放置LoginForm.phpUser.php此文件夹中(还更新这些文件中的命名空间声明)
  4. 添加了AccessControl行为和登录/注销操作modules\admin\controllers\DefaultController.php
  5. 更新config\web.php如下:

    'modules' => [
        'admin' => [
            'class' => 'app\modules\admin\Module',
        ],
    ],
    
    Run Code Online (Sandbox Code Playgroud)
  6. 更新app\modules\admin\Module.php如下:

    public function init()
    {
        parent::init();
    
        Yii::$app->set('user', [
            'class' => 'yii\web\User',
            'identityClass' => 'app\modules\admin\models\User',
            'enableAutoLogin' => true,
            'loginUrl' => ['admin/default/login'],
        ]);
    
        Yii::$app->set('session', [
            'class' => 'yii\web\Session',
            'name' => '_adminSessionId',
        ]);
    }
    
    Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,如果我在未登录时尝试访问管理页面,则会显示登录表单(这是正确的).但是在登录时,它只是将我重定向回主站点.它应该将我重定向到我试图访问的管理页面.

DefaultController.php,它具有以下(默认代码):

if ($model->load(Yii::$app->request->post()) && $model->login())
    return $this->goBack();
Run Code Online (Sandbox Code Playgroud)

这样做的正确方法是什么,以便我可以为管理模块和主站点进行独立登录?我不想使用"高级应用程序模板",因为这会增加一些不必要的复杂性.

yii2

9
推荐指数
1
解决办法
1539
查看次数

无密码登录系统

创建无密码登录系统的最佳方法是什么?

我正在考虑使用某种随机生成的16个字符标记,例如:

mysite的/构件/的index.php?标记= 2j0n1qyjgcxyu3oy

我正在开发一个报价系统,其想法是供应商不必注册,而是我为他们创建帐户,他们所要做的就是点击他们电子邮件中的链接以提交报价.这将鼓励供应商提交报价,因为他们知道他们不需要注册或登录.

如果他们碰巧猜到令牌,那么有人可以做的伤害并不大,但我仍然希望在不需要密码的情况下使系统尽可能安全.

php

8
推荐指数
1
解决办法
1277
查看次数

Yii 1.1 - 使用验证创建多步骤表单

我基本上尝试使用Yii中的CActiveForm类创建一个多步骤表单.我的想法是希望使用内置功能以最简单的方式实现这一点.我的要求如下:

  • 多步骤ONE PAGE表单(使用显示/隐藏jQuery的DIV)
  • EACH步骤的AJAX验证(仅验证特定于步骤的属性)
  • 验证必须使用validateOnChange()validateOnSubmit()方法

这是我迄今为止开发的半工作解决方案:

视图:

<div class="form">

        <?php $form = $this->beginWidget('CActiveForm', array(
            'id'=>'listing-form',
            'enableClientValidation'=>false,
            'enableAjaxValidation'=>true,
            'clientOptions'=>array(
                'validateOnChange'=>true,
                'validateOnSubmit'=>true,
                'afterValidate'=>'js:validateListing',
            ),
        )); ?>

        <?php echo $form->errorSummary($model); ?>

        <div class="step" id="step-1">
            // model input fields
            <?php echo CHtml::submitButton('Next Step', array('name'=>'step1')); ?>
        </div>

        <div class="step" id="step-2" style="display: none;">
            // model input fields
            <?php echo CHtml::submitButton('Next Step', array('name'=>'step2')); ?>
        </div>

        <div class="step" id="step-3" style="display: none;">
            // model input fields
            <?php echo CHtml::submitButton('Submit', array('name'=>'step3')); ?>
        </div>

        <?php $this->endWidget(); ?> …
Run Code Online (Sandbox Code Playgroud)

yii

8
推荐指数
1
解决办法
2144
查看次数

修改标签FOR属性

我正在使用jQuery函数来克隆包含一组输入元素的DIV:

<div class="history-form-fields">

<div class="row">
  <label for="History_0_type">Type</label>
  <select name="History[0][type]" id="History_0_type">
  <option value="">Select</option>
  </select>
</div>

<div class="row">
  <label for="History_0_name">Name</label>
  <input type="text" name="History[0][name]" id="History_0_name" />
</div>

<div class="row">
  <label for="History_0_year">Year</label>
  <select name="History[0][year]" id="History_0_year">
  <option value="">Select</option>
  </select>
</div>

</div>

<input id="addAnother" type="button" value="Add Another" /> 
Run Code Online (Sandbox Code Playgroud)

当克隆此DIV时,需要修改输入元素NAME和ID标记,以便我们可以识别服务器端脚本中的数据.

我有以下代码克隆DIV并修改INPUT和SELECT标记:

var counter = 0;

$('#addAnother').click(function(){
    var divCloned = $('.history-form-fields:first').clone();
    divCloned.insertAfter('.history-form-fields:last');
    initNewInputs(divCloned.children('.row'), ++counter);
});

function initNewInputs(divs, idNumber)
{       
    var inputs = divs.children('input, select').get(); // find all the INPUT and SELECT tags

    for(var i in inputs)
    {
        inputs[i].id …
Run Code Online (Sandbox Code Playgroud)

jquery

7
推荐指数
1
解决办法
1万
查看次数

通过导航离开页面防止丢失表单数据

我正在创建一个包含数百行的数据网格,每行包含一个复选框,以便用户可以从网格中选择一个项目.

现在,用户可能花费大量时间过滤/搜索网格并勾选所需的复选框,只是意外地按下键盘上的退格键或单击页面上的超链接.他们会丢失所有的复选框选项.

因此,我想介绍一些功能,如果至少勾选了一个复选框,那么如果用户无意中执行了将其导航离开页面的操作,则会显示JavaScript确认消息以通知用户此操作.

复选框都属于同一组,例如它将被称为"产品".

这有可能吗?

javascript forms jquery

6
推荐指数
1
解决办法
2431
查看次数

JavaScript-使用后退按钮关闭弹出窗口

我有一个自定义弹出功能。我想要的是浏览器后退按钮以关闭此弹出窗口。

我理想的情况是不要在网址栏中显示主题标签。

我试图把window.history.pushState('forward', null, '');我的showPopup()功能,然后执行以下操作:

$(window).on('popstate', function () {
    closePopup();
});
Run Code Online (Sandbox Code Playgroud)

确实可以,但是问题是当我手动关闭弹出窗口时,必须按两次后退按钮才能导航回到上一页(显然是因为打开弹出窗口时添加了浏览器历史记录条目)。

最好的方法是什么?是否可以在不添加浏览器历史记录条目的情况下完成?本质上,我想做的是复制移动应用程序的行为。在移动应用中按返回按钮通常会关闭所有打开的模式或上下文菜单。

$(window).on('popstate', function () {
    closePopup();
});
Run Code Online (Sandbox Code Playgroud)
$('.popup-link').click(function() {
    showPopup();
});

$('.popup-close').click(function() {
    hidePopup();
});

function showPopup() {
    $('.popup').addClass('active');
}

function hidePopup() {
    $('.popup').removeClass('active');
}
Run Code Online (Sandbox Code Playgroud)
.popup {
  background-color: #ccc;
  width: 300px;
  height: 300px;
  display: none;
}

.popup.active {
    display: block;
}
Run Code Online (Sandbox Code Playgroud)

html javascript jquery html5

6
推荐指数
2
解决办法
1627
查看次数

jQuery UI对话框 - 设置默认配置

我有几个jQuery UI Dialogs处理程序,所有这些都包含以下内容:

open: function(event, ui) {
      $(".ui-dialog-titlebar").removeClass("ui-corner-all");
      $(".ui-dialog").removeClass("ui-corner-all");
},
Run Code Online (Sandbox Code Playgroud)

这样对话框就有方角,而不是圆角.我想知道是否可以将此设置为默认值,这样我就不必将此代码插入到页面上的每个对话框配置中.

我知道我可以编辑CSS,但如果不需要,实际删除该类会更有意义.

jquery jquery-ui jquery-ui-dialog

5
推荐指数
1
解决办法
2489
查看次数

Yii2 - ActiveForm 和 afterValidate 事件

我在afterValidate()事件中使用 ActiveForm ,但是目前afterValidate()在任何验证事件上都会触发。我如何区分事件validateOnSubmit,validateOnBlurvalidateOnChange

基本上,我只希望我的afterValidate()函数在提交时被触发。这是我的代码:

PHP:

<?php $form = ActiveForm::begin([
    'id' => 'register-form',
    'options' => [
        'class' => 'validate-form',
    ],
    'enableClientValidation' => true,
    'enableAjaxValidation' => false,
    'validateOnSubmit' => true,
    'validateOnBlur' => true,
    'validateOnChange' => true,
]); ?>
Run Code Online (Sandbox Code Playgroud)

JS:

// JS afterValidate function
$('.validate-form').on('afterValidate', function (event, messages, errorAttributes) {
    $('.error-popup').show();

    return false;
});
Run Code Online (Sandbox Code Playgroud)

HTML:

<div class="error-popup">Please review the errors in the form below.</div>
Run Code Online (Sandbox Code Playgroud)

正如您在我afterValidate()上面的函数中看到的那样,如果存在验证错误,则会显示一个错误弹出窗口。但是,如果用户提交表单时出现任何验证错误,我只希望此错误弹出窗口出现。

如果在模糊/更改时出现验证错误,则应该在没有任何错误弹出窗口的情况下进行正常的内联验证。

根据我的理解,beforeSubmit只有在验证通过时才会触发事件。

php yii2

5
推荐指数
1
解决办法
733
查看次数

标签 统计

jquery ×5

javascript ×2

php ×2

yii2 ×2

foreign-keys ×1

forms ×1

html ×1

html5 ×1

jquery-ui ×1

jquery-ui-dialog ×1

mysql ×1

sql ×1

yii ×1