小编Dou*_*aan的帖子

我想在用户关闭浏览器选项卡时将数据发布到 API

我陷入了一个需要你们输入的场景。目前,我正在开发一项功能,即锁定其他管理员的预订。我在预订表中创建了一个字段,当管理员进入预订时,我将 user_id 放置在该字段中,该字段会使用当前管理员 ID 进行更新,并且其他管理员目前确实可以访问该预订。

所以问题是,如果用户关闭该选项卡,其他管理员的预订也会保持锁定状态。

我在 vueJs 中尝试了很多不同的方法,例如beforeunloadMethod. 我使用过 Xhr 方法和 axios 在这种情况下都失败了。我还能做什么来解决这个问题

removeUser () {

    var params = JSON.stringify({ locked_by: '' });
    let xhr = new XMLHttpRequest()
    xhr.open('PUT',Url, true)
    xhr.setRequestHeader("Authorization", 'Bearer ' + localStorage.getItem('app_access_token'))
    xhr.setRequestHeader("Content-length", params.length);
    xhr.setRequestHeader("Content-type", "application/json; charset=utf-8")
    xhr.responseType = 'arraybuffer'
    xhr.onreadystatechange = function() {//Call a function when the state changes.
    if(xhr.readyState == 4 && xhr.status == 200) {
        alert(xhr.responseText);
    }
}
xhr.send(params);
Run Code Online (Sandbox Code Playgroud)
mounted() {
    window.addEventListener('beforeunload', this.removeUser)
Run Code Online (Sandbox Code Playgroud)

还尝试了 beforeunload 事件上的 axios 调用

removeUser (id) { …
Run Code Online (Sandbox Code Playgroud)

javascript laravel vue.js vuejs2

3
推荐指数
1
解决办法
4758
查看次数

JQuery得到了形式和形式方法

我喜欢这个

<form id="popisgolubova_form">
    <input name="pregledaj" type="button" formaction="uredigoluba.php" formmethod="post" formtarget="_self" value="pregledaj" class="button" onclick="popisgolubova_radiobutton(this)">
    <input name="rodovnik" type="button" formaction="rodovnik.php" formmethod="post" formtarget="_blank" value="rodovnik" class="button" onclick="popisgolubova_radiobutton()">
    <input name="podaci" type="button" value="poodaci" formaction="podaciogolubu.php" formmethod="post" formtarget="_blank" class="button" onclick="popisgolubova_radiobutton()">
</form>
Run Code Online (Sandbox Code Playgroud)

和javascript

function popisgolubova_radiobutton(element)
{
    alert($(element).find("[formaction]").val());
    var popisgolubova_radiobutton=$("input[name=RadioGroup1]").is(":checked");
    if(popisgolubova_radiobutton==false)
    {
        alert("nop");
    }
    else
    {
        $("form#popisgolubova_form").submit();
    }   
}
Run Code Online (Sandbox Code Playgroud)

首先,我正在检查是否检查了任何复选框,如果是,我可以提交表格.但问题是形成,形式方法和形式目标.如何获取并提交它们

javascript forms jquery

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

Laravel 5.5:文​​件下载FileNotFoundException?

我正在构建一个项目管理系统,用户可以将文件附件上传到任务中.这些附件存储在"storage/app/public/projects //"目录中.在正确的目录下的正确目录中,上传工作就像它应该的那样.

但是,当我想下载所述附件时,无论如何都找不到该文件.我提供了我的上传和下载方法的代码,以及我的"本地"驱动程序配置.

驱动配置:

'local' => [
    'driver' => 'local',
    'root'   => storage_path('app/public'),
    'url'    => env('APP_URL').'storage'
],
Run Code Online (Sandbox Code Playgroud)

上传方式:

$sExt = $request->file('attachment')->getClientOriginalExtension();

$sHashedName = substr(
    sha1(str_replace(' ', '', pathinfo($request->file('attachment')->getClientOriginalName(), PATHINFO_FILENAME))
), 0, 14);

if ( ! Storage::disk('local')->exists($sHashedName . '.' . $sExt)) {
    $request->file('attachment')->storeAs(
        '/projects/'.$oTask->project->id, $sHashedName . '.' . $sExt, 'local'
    );
}

$oTask->attachments()->create([
    'name'      => $request->name,
    'location'  => $sHashedName . '.' . $sExt,
    'user_id'   => Auth::id()
]);
Run Code Online (Sandbox Code Playgroud)

目前的下载方式:

public function downloadAttachment(Project $project, Task $task, Attachment $attachment)
{
    var_dump(rtrim(env('APP_URL'), '/') . public_path('/projects/' …
Run Code Online (Sandbox Code Playgroud)

php download laravel laravel-5

2
推荐指数
1
解决办法
531
查看次数

Laravel 5.5。缺少[Route:password.request]所需的参数

我的路线中有以下几点:

Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.request');
Run Code Online (Sandbox Code Playgroud)

我在auth下的reset.blade看起来像

<div class="container">
    <div class="row">
        <div class="col-md-8 col-md-offset-2">
            <div class="panel panel-default">
                <div class="panel-heading">Reset Password</div>

                <div class="panel-body">
                    <form class="form-horizontal" method="POST" action="{{ route('password.request') }}">
                        {{ csrf_field() }}

                        <input type="hidden" name="token" value="{{ $token }}">

                        <div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
                            <label for="email" class="col-md-4 control-label">E-Mail Address</label>

                            <div class="col-md-6">
                                <input id="email" type="email" class="form-control" name="email" value="{{ $email or old('email') }}" required autofocus>

                                @if ($errors->has('email'))
                                    <span class="help-block">
                                        <strong>{{ $errors->first('email') }}</strong>
                                    </span>
                                @endif
                            </div>
                        </div>

                        <div class="form-group{{ $errors->has('password') …
Run Code Online (Sandbox Code Playgroud)

laravel laravel-5 laravel-5.5

2
推荐指数
1
解决办法
3055
查看次数

Bootstrap 警报按钮设计已关闭,单击时不会关闭

我正在尝试 Bootstrap,但 Bootstrap 警报按钮不知何故根本不起作用。我所做的就是从 Bootstrap 复制代码: 在此输入图像描述

但是页面显示的是这个?按钮的设计是关闭的,并且它不起作用(不关闭)。我检查了所有内容:alert-dismissible是否存在,按钮有data-dismiss = 'alert',但不知何故它不起作用。我包含的脚本是 Bootstrap 捆绑版本。 在此输入图像描述

html css bootstrap-modal bootstrap-5

2
推荐指数
1
解决办法
1336
查看次数

为控制器中的一个方法添加一个中间件 - Laravel

有一个中间件被调用ageCheck,一个控制器被调用MyController,它具有以下返回视图的方法。

index();
show();
edit();
Run Code Online (Sandbox Code Playgroud)

如何在MyController.

我试过这个,但它不起作用!

路线.php:

Route::get('/edit', [
  'middleware' => 'ageCheck',
  'MyController@edit'
]);
Run Code Online (Sandbox Code Playgroud)

laravel

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

替换“。” 三元运算符中的''

我想检查以“。”开头的字符串。例如.net并使用javascript中的三元运算符将其替换为net。我想将以下代码替换为三元运算符

arr = ".net"
var val = arr.startsWith('.');

if(val == true)
{
    arr = arr.replace('.','');
} 
else
{
    arr;
}
Run Code Online (Sandbox Code Playgroud)

尝试为 arr = arr.startsWith('.') ? arr.replace('.','') : arr;

html javascript

1
推荐指数
2
解决办法
67
查看次数

axios返回Request头域 X-Requested-With is not allowed by Access-Control-Allow-Headers

我有一个 Laravel 应用程序,其中我在 VueJS 组件中使用 axios 在单击按钮时将 GET 请求发送到外部公共 API,但它会引发以下错误:

[Error] Request header field X-Requested-With is not allowed by Access-Control-Allow-Headers.
[Error] XMLHttpRequest cannot load http://api.icndb.com/jokes/random due to access control checks.
[Error] Failed to load resource: Request header field X-Requested-With is not allowed by Access-Control-Allow-Headers. (random, line 0)
Run Code Online (Sandbox Code Playgroud)

这是我失败的尝试:

const url = "http://api.icndb.com/jokes/random";
const response = await axios.get(url);
Run Code Online (Sandbox Code Playgroud)

我只是应该收到一些查克·诺里斯的笑话并打印在控制台上......

PS:我已经看到了一些与 CORS 相关的事实,但我没有从中得到任何信息,所以我就在这里。

laravel vue.js axios

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

如何为关系定义自定义用户 ID

我有一个 Laravel 9 论坛项目,对于Question模型,我添加了以下内容:

public function user()
{
    return $this->belongsTo(User::class);
}
Run Code Online (Sandbox Code Playgroud)

对于User模型,我添加了以下内容:

public function questions()
{
    return $this->hasMany(Question::class);
}
Run Code Online (Sandbox Code Playgroud)

基本上,每个问题都有一个名为的字段creator_id,我想根据这个字段连接这两个模型之间的关系。

那么我该怎么做呢?

php laravel laravel-9

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

使用 symfony3 预期值的注释错误,得到“POST”

我有 Symfony 应用程序,我尝试将一个简单的表单提交给 action 函数,显然我的注释是错误的,但我不知道如何修复它们。这是完整的错误

[语法错误] 预期值,在 C:\xampp\htdocs\TaskManager\src\AppBundle/Controller/ 中的方法 AppBundle\Controller\ProjectController::showAction() 中的位置 58 处得到“POST”(这是从“C :\xampp\htdocs\TaskManager\app/config\routing.yml")。

这是我尝试提交的表格 show.html.twig

<form method="post">
    <input type="submit" name="approve" value="Approve">
    <input type="submit" name="reject" value="Reject">
</form>
Run Code Online (Sandbox Code Playgroud)

其背后的原因是我只有一种类型的用户可以批准或拒绝项目。该用户不应仅仅为了更改这两个字段而进入编辑页面。相反,它应该单击两个按钮,并且值应该在他不做任何其他事情的情况下发生变化。我的想法是将这段代码放在showAction()-

if (isset($_POST['approve'])) {
    $project->setApproved(true);
    $project->setRejected(false);
}
elseif (isset($_POST['rejected'])) {
    $project->setRejected(true);
    $project->setApproved(false);
}
Run Code Online (Sandbox Code Playgroud)

在我更改这些值后,我打算刷新它们,以便再次显示该项目时,它将被批准或拒绝。这里的关键是不应该有字段。当我想展示一个项目时,我已经拥有了冲洗它所需的一切。这是我对 showAction() 的注释 -

/**
 * Finds and displays a project entity.
 *
 * @Route("/{id}", name="project_show")
 * @Method("GET","POST")
 */
Run Code Online (Sandbox Code Playgroud)

只是为了比较,这里是我的注释,editAction()其中工作正常

/**
 * Displays a form to edit an existing project entity.
 *
 * @Route("/{id}/edit", name="project_edit")
 * …
Run Code Online (Sandbox Code Playgroud)

php forms symfony

0
推荐指数
1
解决办法
562
查看次数

jQuery 结合 on('click') 和 if 语句

我正在开发可以重复使用的侧面导航,并且我想实现一些数据属性。是否可以以我需要在单击时触发 jQuery 函数的方式组合 on('click') 事件和 if 语句,或者data-open="true"默认情况下打开侧边导航。关键是我不想重写 open 属性的所有代码。如果data-open="true". 抱歉英语不好

这是我的 HTML:

<nav class="side-nav side-nav-right" data-push="true" data-open="true" data-opacity="true">
    <div class="side-toggle-button">
        <div class="icon-bar"></div>
        <div class="icon-bar"></div>
        <div class="icon-bar"></div>
    </div>
</nav>
Run Code Online (Sandbox Code Playgroud)

这是 JavaScript

// Side Navigation
$('.side-toggle-button').on('click', function() {
    var push = $('.side-nav').data().push;
    var opacity = $('.side-nav').data().opacity;
    var open= $('.side-nav').data().open;

    $('.side-nav').toggleClass('side-nav-open');

    // Left Side Navigation
    if ($('.side-nav').hasClass('side-nav-left')){
        $(this).toggleClass('side-toggle-button-left');

        //Left Side Push Option
        if (push === true) {
            $('body').toggleClass('side-nav-push-right');
        }

    // Right Side Navigation
    } else {
        $(this).toggleClass('side-toggle-button-right');

        //Right Side …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

0
推荐指数
1
解决办法
211
查看次数

使用 DOM 选择列表中项目的最后一个元素

不使用 jQuery(因为我还没有开始那个部分),只使用一些好的旧 JavaScript/DOM,我怎么能选择列表中项目的最后一个元素。

例如,我有以下 HTML:

<section id="container">
  <ul>
    <li class="first">one</li>
    <li class="second">two</li>
    <li class="third">three</li>
  </ul>
  <ol>
    <li class="first">one</li>
    <li class="second">two</li>
    <li class="third">three</li>
  </ol>
</section>
Run Code Online (Sandbox Code Playgroud)

我想选择这个项目并将它返回到 DOM: <li class="third">three</li>ol列表中。我知道document.querySelector只选择文档中的第一个元素,即document.querySelector('li.third'). 我将如何做相反的事情并选择最后一个?

html javascript dom

0
推荐指数
1
解决办法
2314
查看次数