小编Jus*_*rty的帖子

强制客户选中复选框,确认他们已阅读文档

我有一个WooCommerce网站,有几个产品由于他们订购了错误的东西而获得了大量的回报.我添加了一个"备忘单",客户可以通过高级自定义字段引用该备忘单.我已经编写了下面的代码,强制他们选中复选框以确认他们已经阅读了它,然后才能将产品添加到购物车中.

问题是,无论是否勾选方框,我都会显示自定义错误消息.显然我的逻辑有一个缺陷,但我无法确定它.

任何帮助将不胜感激.

<?php
// Add Confirmation Checkbox on Product Single  
add_action( 'woocommerce_single_product_summary', 'woocommerce_cheat_sheet_confirm', 29 );  
    function woocommerce_cheat_sheet_confirm() {
        global $post;
        $cheat_sheet = get_field('cheat_sheet'); // Get Advanced Custom Field
        if ( ! empty( $cheat_sheet ) ) { // If it exists, add the confirmation box ?>                   
            <div id="cheat-sheet-confirmation" class="checkbox">
                <form>  
                    <label>
                        <input id="cheatsheetconfirm" name="cheatsheetconfirm" type="checkbox" value="isconfirmed"> I confirm that I have read the <a href="<?php echo $cheat_sheet['url']; ?>" />cheat sheet</a>.
                    </label>
                </form>
            </div>
        <?php } 
    }

    function cheatsheetConfirmation() { 
    if(isset($_REQUEST['cheatsheetconfirm']) …
Run Code Online (Sandbox Code Playgroud)

php wordpress product woocommerce advanced-custom-fields

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

异步脚本延迟后执行

理想情况下,我希望所有脚本都以 HTML 顺序异步加载。据我所知,async不是这样的。

对于以下属性,general.min.jsfuncs.min.js脚本不会运行,因为其中包含一些 jQuery。

<script type="text/javascript" src="scripts/jquery-3.2.1.min.js" async="async"></script>
<script type="text/javascript" src="scripts/general.min.js" defer="defer"></script>
<script type="text/javascript" src="scripts/funcs.min.js" defer="defer"></script>
Run Code Online (Sandbox Code Playgroud)

据我了解,该属性仅影响下载,而不影响脚本的执行。

那么,如何才能保持下载后的执行顺序呢?

javascript jquery asynchronous

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

如何在Laravel中插入具有多个不同列的多行

我只是尝试了以下命令,但收到了不良结果。

DB::table('locations')->insert([
    ['code' => 'YC', 'name' => 'York Clifton'],
    ['code' => 'YK', 'name' => 'York'],

    ['postcode' => 'DR1',  'name' => 'Jason'],
    ['postcode' => 'DLR',  'name' => 'Beckton']
]);
Run Code Online (Sandbox Code Playgroud)

上面将这样在表中插入数据:

DB::table('locations')->insert([
    ['code' => 'YC', 'name' => 'York Clifton'],
    ['code' => 'YK', 'name' => 'York'],

    ['postcode' => 'DR1',  'name' => 'Jason'],
    ['postcode' => 'DLR',  'name' => 'Beckton']
]);
Run Code Online (Sandbox Code Playgroud)

位置表是使用以下代码段构建的:

$table->string('name', 100);
$table->string('code', 4)->nullable();
$table->string('postcode', 10)->nullable();
Run Code Online (Sandbox Code Playgroud)

自然,我想要的结果是在数据库中插入四行。前两个将填充codename字段,而后两个插入将填充postcodename

我看过的文档说:

查询构建器还提供用于将记录插入数据库表的插入方法。insert方法接受一个列名和值数组

您甚至可以通过传递一个数组数组,通过一次插入调用将多个记录插入表中 …

php mysql laravel laravel-5.6

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

如何从 Laravel Eloquent API 资源中仅获取特定字段?

我正在开发一个可通过移动和网络应用程序访问的 API。
我需要从 API 资源发送特定字段。

我有ItemResource

public function toArray($request) {
    return [
        'id'          => $this->id,
        'name'        => $this->name,
        'description' => $this->description,
        'price'       => $this->price,
        'stock'       => $this->stock,
        'reviews'     => $this->reviews, // this is from reviews table
    ];
}
Run Code Online (Sandbox Code Playgroud)

我的Item模特

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

我的控制器代码

return ItemResource::collection(Item::all());
Run Code Online (Sandbox Code Playgroud)

我得到这个数组

{
    "data": {
        "id": 10,
        "name": "Item Name",
        "description": "Item description",
        "price": 410,
        "stock": "815",
        "reviews": [
            {
                "id": 4,       // I don't want to get this …
Run Code Online (Sandbox Code Playgroud)

php mysql laravel eloquent

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

使用AngularJS如何检查文件夹中是否存在PDF文件?

我有一份学生名单.
对于一些学生,我必须显示一个链接,并在点击此链接时,他们的进度卡应该加载(它是.pdf文件).对于其他人,不应显示该链接.

我这样做是通过给他们的进度卡提供相同的学生ID,如果是这个特定的学生,那么显示链接; 否则,请勿显示链接.我可以这样做,只有5或6名学生.我不能为1000名学生这样做.

以下是我的AngularJS代码:

if (response.student_id == 'SD0001' || response.student_id == 'SD0002' || response.student_id == 'SD0004') {  
    $scope.pdfData = true;
    $scope.StudentPDFFile =  response.student_id+'.pdf';
} else {
    $scope.pdfData = false;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.6/angular.min.js"></script>
<body id="ng-app" ng-app>
    <div ng-switch on="pdfData">
        <div ng-switch-when="false"></div>
        <div ng-switch-when="true">
            <span class="font-10">Download Performance Report</span>
            <a href="http://www.example.com/s-pdf/{{StudentPDFFile}}" target="_blank">­ click here</a>
        </div>
    </div>
</body>
Run Code Online (Sandbox Code Playgroud)

这里我没有指定控制器,这是骨架功能对我有用.

1000条记录我怎么能这样做?

javascript pdf angularjs

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

MySQL INNER加入使用

我有两张桌子:

+-----------------------+
| Tables_in_my_database |
+-----------------------+
| orders                | 
| orderTaken            | 
+-----------------------+
Run Code Online (Sandbox Code Playgroud)

在订单,有喜欢的属性orderId,orderName.
在orderTaken,有喜欢的属性userId,orderIdorderStatus.

基本上,我的项目的机制运行如下:
具有唯一userId的用户将能够从网页下订单,其中每个订单也有自己的唯一orderId.采取后,该orderTaken表将记录userId,orderId并初步设置orderStatus = 1.

现在,我想选择一个用户所采取的订单orderStatus = 1,而且我还需要显示我的订单表中的orderName.我已经学会了内连接并编写了一个查询:

SELECT * FROM orders
WHERE orders.orderId IN
(SELECT orderId FROM orderTaken
WHERE orderTaken.userId = '8' AND orderTaken.orderStatus = '1')
INNER JOIN orderTaken ON orders.orderId = orderTaken.orderId
Run Code Online (Sandbox Code Playgroud)

但是,MySQL一直在抱怨语法错误.我想我不能用这种方式加入内连接?任何人都可以纠正我吗?谢谢!

mysql select join inner-join

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

切换案例忽略php中的条件

我正在使用开关来测试变量的值.
变量,, $sizeTotal可以包含字符串或数字.在下面的例子中,我期望开关触发默认情况.
但是,它每次都是第一个案例,我不知道为什么......

$sizeTotal = "test";
$extraCharges['2'] = 1000;

switch ($sizeTotal) {
    case ($sizeTotal < $extraCharges['2']):
        $var = 40;
        return $var;

    case ($sizeTotal >= $extraCharges['2']):  
        $var = 60;
        return $var;

    default:
        $var = 1000;
        return $var;
}
Run Code Online (Sandbox Code Playgroud)

php switch-statement

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

正确获取单击按钮的行索引

我尝试了多种方法来获取表内单击按钮的行索引。

桌子:

while ($info = mysqli_fetch_array($sql)) {
    echo "<tr>";
        echo "<th>{$info['name']}</th>";
        echo "<th>{$info['pass']}</th>";
        echo "<th><a href='http://{$info['link']}'>{$info['link']}</a></th>";
        echo "<th><div class='delbuttons'><button class='btn btn-info' data-toggle='modal' data-target='#myModal' id='{$info['id']}'>Delete</button></div></th>";
    echo "</tr>";
}
?>
Run Code Online (Sandbox Code Playgroud)

这些是我尝试过的方法:

$(document).on('click', '.delbuttons button', function(event) {
    alert($(this).index());
}
Run Code Online (Sandbox Code Playgroud)

但它总是返回-1

$(document).on('click','.delbuttons button', function(event) {
    alert(this.rowIndex);
}
Run Code Online (Sandbox Code Playgroud)

这将返回undefined

javascript jquery row html-table onclick

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

Console.log 只显示一次结果,当 addEventListener 时按钮不起作用

我知道这是一个基本问题,但我不知道如何解决它!
在我的部分代码中,我有与下面相同的代码块;该部分工作正常,但对于这一部分,我遇到了错误!

console.log 仅第一次显示结果!

const bt = document.createElement('button');
bt.innerHTML = "CLICK HERE";
document.querySelector('#dv').append(bt);

bt.addEventListener('click', console.log('clicked'));
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html>
    <head>
        <title>test</title>
        <script src="test.js" defer></script>
    </head>
    <body>
        <div id="dv"></div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

javascript dom-events

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