小编And*_*ndy的帖子

执行ajax响应中返回的js文件

我有一个使用jquery 3.2.1的HTML5应用程序.

在应用程序的一部分 - 搜索功能 - 我发出ajax请求.来自ajax请求的响应是HTML,这包括一个<script>链接到js文件的标记,该文件与应用程序位于同一服务器上.

所以ajax代码看起来像这样 - 用于发出ajax请求并将响应写入具有ID的div #ajaxContent:

$.ajax({
    url: $('#searchRegulations').attr('action'),
    type: 'post',
    cache: false,
    data: $('#searchRegulations').serialize()
 }).done(function (response, status, xhr) {
        if (response) {
            $('main .content').hide();
            $('#ajaxContent').html(response).show();
            return false;
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

如果我检查#ajaxContent我可以看到<script>标签包含在ajax响应中:

在此输入图像描述

我还检查了我的网络选项卡,以确保/js/search_regulations.js正确加载,它给出了200响应:

里面search_regulations.js有一些jquery切换存在的一些过滤器#ajaxContent.

问题是这个代码似乎只在50%的时间内起作用.当它工作时,它将切换一些过滤器按钮的状态,方法是.active在内部的元素中 添加/删除一个类.browse-ctp__filters-data,然后将它们写入带有ID的隐藏表单#tmpFilters.

为了确保脚本"触发",我放入了该行,console.log('search_regulations.js firing');并确定每次都会在控制台中显示,无论脚本是否起作用.

更奇怪的是,如果在将ajax响应写入页面后将代码剪切/粘贴到我的控制台中,它总是按预期工作.

这是脚本进入页面的方式有问题吗?

我已粘贴下面的脚本,但我不认为这是代码中的代码问题,而是处理浏览器/ ajax响应的方式:

$(function() {  

console.log('search_regulations.js firing');

/* toggle the active …
Run Code Online (Sandbox Code Playgroud)

html javascript ajax jquery

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

设置Twitter提要样式 - CSS不会以.timeline-Tweet-text为目标

我正在使用以下代码将Twitter Feed引入我的网站,该代码在https://publish.twitter.com/上有所描述

<a class="twitter-timeline" href="https://twitter.com/ACCOUNT-HERE" data-tweet-limit="3">Tweets by</a> 
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
Run Code Online (Sandbox Code Playgroud)

Feed正确显示.然而,它使用通过Twitter提供的CSS.

当我使用Chrome开发工具检查它时,我可以在推文周围看到以下类:

<p class="timeline-Tweet-text" lang="en" dir="ltr">
Run Code Online (Sandbox Code Playgroud)

所以我认为这将是一个简单的例子,在CSS中将其作为目标,例如

.timeline-Tweet-text {
}
Run Code Online (Sandbox Code Playgroud)

但是,这不适用于推文的任何样式.为什么不?

我也在这里提到了Twitters的指导https://dev.twitter.com/web/overview/css,但这也行不通.

我想要这样做的唯一原因是小部件中使用的字体body与我网站上其他文本使用的字体相匹配.

html css twitter

14
推荐指数
2
解决办法
3072
查看次数

Slim Framework - 将代码拆分为index.php以外的多个文件

关于Slim Framework 的文档,它说

在这个示例应用程序中,所有路由都在index.php中,但实际上这可能会产生一个相当长且难以处理的文件!可以重构您的应用程序以将路由放入不同的文件或文件中,或者只注册一组具有实际在其他地方声明的回调的路由.

它没有说明如何实际做到这一点.我唯一的想法是,你可以拆分代码到多个PHP文件,然后使用includerequireindex.php引用这些.

我也不确定它是什么意思"注册一组带有实际在其他地方声明的回调的路由"

有没有人对此有任何想法,因为我想要构建的应用程序可能有相当多的路由?

php slim

7
推荐指数
2
解决办法
2940
查看次数

在本地使用 Composer 然后通过 FTP 上传文件

有点奇怪的设置,但遇到了一个项目,其中 Composer 已在本地环境中用于启动项目。最初的开发人员没有对生产服务器的 ssh 访问权限,因此他在本地使用 Composer,并使用 FTP 将“供应商”目录从他的桌面上传到服务器。

我现在需要添加PHPMailer包,因此在我的 Mac 本地完成了以下操作:

cd Desktop/
composer require phpmailer/phpmailer
Run Code Online (Sandbox Code Playgroud)

这在我的桌面上创建了以下结构:

Desktop/composer.json
Desktop/composer.lock
Desktop/vendor/autoload.php
Desktop/vendor/composer/*
Desktop/vendor/phpmailer/*
Run Code Online (Sandbox Code Playgroud)

我需要通过 FTP 上传哪些文件?我意识到vendor/phpmailer/*是我想要的包,所以需要上传。

其他人呢?我已经配置了自动加载器,所以vendor/autoload.php这里不需要猜测?

composer.json 我可以将包添加到已经存在的包中,例如

"require": {
    *other packages here*
    "phpmailer/phpmailer": "^5.2"
}
Run Code Online (Sandbox Code Playgroud)

但我不确定这是否有必要,因为我不会在服务器上使用 ssh/Composer 来运行任何更新?

php composer-php

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

border-bottom dotted在Chrome的开头/结尾处有实线

我已经创建了一个小提琴来说明这一点:https://jsfiddle.net/9tu8n4y5/

标记非常简单,因为它应该看起来像一条虚线来分隔内容:

.dot {
    border-bottom: dotted 2px #022169;
}

<div class="dot"></div>
Run Code Online (Sandbox Code Playgroud)

在Firefox 55.0.3中,这看起来像我期望的那样:

在此输入图像描述

但是,在Chrome 61.0.3163.91中,它在开头和结尾都有一个奇怪的"实线":

在此输入图像描述

言归正传:

在此输入图像描述

有没有人有任何想法为什么这是?我想这是一个浏览器特定的问题,无法用CSS改变?

我正在使用27"5k Retina iMac.但是我的第二个显示器是非Retina屏幕,结果是相同的.

Safari 10.0.3提供与Firefox相同的结果.

编辑(发布后) - 向Chromium Bugs团队报告,https: //bugs.chromium.org/p/chromium/issues/detail?id = 766977

css firefox google-chrome

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

你如何以编程方式在DataTables中打开多行

我认为这个问题已得到解答,但我无法解决这个问题.试过:

我在serverSide模式中使用DataTables 1.10.16 - 我的数据是通过ajax加载的,而不是在页面加载时加载.

我的标记只是一个带有ID的表,#substancesTable:

<table id="substancesTable" cellspacing="0" width="100%">
    <thead>
        <tr>
            <th>ID</th>
            <th>EC</th>
            <th>CAS</th>
            <th>Name</th>
         </tr>
     </thead>
</table>
Run Code Online (Sandbox Code Playgroud)

加载数据的js如下:

var substancesTable = $('#substancesTable').DataTable({
    "processing": true,
    "serverSide": true,
    "searching": false,
    "ajax": {
        "url": "/get-substances.json",
        "dataSrc": function (json) {
             return json.data;
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

这填好了我的桌子.我有一个事件处理程序,当用户手动点击一行(其中的任何<td>元素#substancesTable)时,它会进一步发出ajax请求以获取更多数据,然后填充<td>用户单击的数据.此代码还负责关闭/折叠任何打开的行:

$('#substancesTable tbody').on('click', 'td', function () {
    var tr = $(this).closest('tr');
    var row = substancesTable.row( tr );

    if ( row.child.isShown() ) {
        row.child.hide();
        tr.removeClass('shown');
    } …
Run Code Online (Sandbox Code Playgroud)

javascript jquery datatables

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

车把-根据模板中的阵列键进行计算

我是Handlebars的新手,正在使用4.1.2版。我正在尝试将一些用PHP编写的模板移动到Handlebars。

我的数据源是一个JSON提要,其结构如下所示:

[
    {
        "regulations_label": "Europe",
        "groups_label": "Group 1",
        "filters_label: "FF1A"
    },
    {
        "regulations_label": "Europe",
        "groups_label": "Group 1",
        "filters_label: "FF1B"
    },
    {
        "regulations_label": "Europe",
        "groups_label": "Group 2",
        "filters_label: "FF2A"
    },
    {
        "regulations_label": "Asia",
        "groups_label": "Group 999",
        "filters_label: "FF999A"
    },
    {
        "regulations_label": "Asia",
        "groups_label": "Group 999",
        "filters_label: "FF999B"
    },
    {
        "regulations_label": "Americas",
        "groups_label": "Group 10000",
        "filters_label: "FF10000A"
    },
]
Run Code Online (Sandbox Code Playgroud)

我的HTML模板(PHP版本)的输出如下:

  • 欧洲
    • 第一组
      • FF1A
      • FF1B
    • 2组
      • FF2A
  • 亚洲
    • 999组
      • FF999A
      • FF999B
  • 美洲
    • 10000组
      • FF10000A

实现此目标的方法(不复制任何regulations_labelgroups_label 输出输出期间)是使用条件逻辑,该条件逻辑检查先前的数组值以查看其是否已更改,例如

// …
Run Code Online (Sandbox Code Playgroud)

javascript jquery handlebars.js

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

.row在Bootstrap中的目的是什么?

根据Bootstrap的文档

行必须放在.container(固定宽度)或.container-fluid(全宽)内

使用行创建水平列组.

为什么这有必要?

.row只能占据的任一的最大宽度.container.container-fluid

鉴于你必须关闭,.row它似乎写得更长:

<div class="container">
    <div class="row">
        <div class="col-md-6">
            <h1>Column A</h1>
        </div>
        <div class="col-md-6">
            <h1>Column B</h1>
        </div>
    </div>

    <div class="row">
        <div class="col-md-6">
            <h1>Column C</h1>
        </div>
        <div class="col-md-6">
            <h1>Column D</h1>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

比这个:

<div class="container">
    <div class="col-md-6">
        <h1>Column A</h1>
    </div>
    <div class="col-md-6">
        <h1>Column B</h1>
    </div>
 </div>

<div class="container">
    <div class="col-md-6">
        <h1>Column C</h1>
    </div>
    <div class="col-md-6">
        <h1>Column D</h1>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

html css twitter-bootstrap twitter-bootstrap-3

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

.form-group 内的 Bootstrap 底部对齐按钮

我有如下标记,在水平线上显示 3 个文本输入

<div class="form-inline">
    <div class="form-group">
        <label>Field 1</label>
        <input id="f1">    
    </div>

    <div class="form-group">
        <label>Field 2</label> 
        <input id="f2">
    </div>

    <div class="form-group">
        <label>Field 3</label>
        <input id="f3">
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我想要一个位于“字段 3”右侧的按钮,该按钮与输入的底部水平对齐#f3

我查看了以下内容,但这些似乎都不起作用:

我尝试过的标记在第四个中添加了按钮.form-group,然后我在上面的链接上尝试了各种方法,例如添加.align-bottom到相关的 div。

<div class="form-inline">
    <div class="form-group">
        <label>Field 1</label>
        <input id="f1">    
    </div>

    <div class="form-group">
        <label>Field 2</label> 
        <input id="f2">
    </div>

    <div class="form-group">
        <label>Field 3</label>
        <input id="f3">
    </div>

    <div class="form-group align-bottom">
        <input type="reset" value="Reset" class="align-bottom">
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

肯定有人希望按钮与表单元素的底部对齐 - 以一条漂亮的直线 - …

html css twitter-bootstrap

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

Stripe - 如何将小数金额发送到 API 进行付款?

我正在将电子商务平台从使用 SagePay 迁移到 Stripe。

\n\n

该文档显示使用的amount数字1099和货币gbphttps://stripe.com/docs/ payments/accept-a- payment#web-create- payment-intent )。

\n\n

据我所知,这意味着 \xc2\xa310.99 (不是 \xc2\xa31099)。但这在他们的文档中非常不清楚 - 我假设情况就是如此。

\n\n

如果我尝试通过他们的 API 发送amount => 10.99,我会在响应中收到一条错误消息:

\n\n
  "error": {\n    "code": "parameter_invalid_integer",\n    "doc_url": "https://stripe.com/docs/error-codes/parameter-invalid-integer",\n    "message": "Invalid integer: 10.99",\n    "param": "amount",\n    "type": "invalid_request_error"\n  }\n
Run Code Online (Sandbox Code Playgroud)\n\n

使用 SagePay,您实际上会10.99按照金额发送。

\n\n

那么,使用 Stripe,您是否必须将所有金额转换为货币的单一基本单位(在英镑的情况下为便士),例如,如果金额为 \xc2\xa310.99,您需要(10.99 * 100)发送1099

\n\n

该文档实际上并没有明确说明这一点。如果您在他们的文档中阅读了 Decimal Amounts ( https://stripe.com/docs/billing/subscriptions/decimal-amounts ),它说您可以使用名为的参数amount_decimal,但如果通过他们的 API 发送,这也会给出错误:

\n\n
$intent = \\Stripe\\PaymentIntent::create([\n    \'amount_decimal\' …
Run Code Online (Sandbox Code Playgroud)

php e-commerce stripe-payments

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