小编use*_*659的帖子

jquery window.open在ajax成功被阻止

尝试在我的ajax成功调用中打开一个新的浏览器窗口,然而,它被阻止为弹出窗口.我做了一些搜索,发现用户事件需要绑定到window.open才能实现.

我还找到了这个解决方案,你在ajax之前打开一个空白窗口,然后在成功调用中正常加载url.

所以我有两个问题:

1 - 这是唯一的解决方案,因为我不想打开这个空白窗口.

2 - 如果这确实是唯一的方法,那么我如何将html加载到这个新窗口?例如,如果我的ajax没有成功,我怎么能将我的错误文本添加到这个空白窗口,因为不会打开网址?

我还应该注意,我不想让ajax调用同步......这会打败ajax的目的,我相信如果不是已经弃用了......如果我在搜索中读错了,请纠正我.

    $('#user-login').on('click', function () {
        var $form = $(this).closest('form');
        window.open('about:blank', 'myNewPage');

        $.ajax({
            type: 'post',
            url: '/spc_admin/process/p_user_login.php',
            data: $form.serialize(),
            dataType : 'json'
        }).done(function (response) {

            $myElem = $('#user_login_message'); //performance for not checking dom
            $myElem.fadeOut('fast', function(){

                if (response.success)
                {
                    $myElem.html('<p><b class="text-blue">Success!</b> &nbsp;You have been logged in as \'<b>'+response.username+'</b>\' in a new browser window.</p>').fadeIn('fast');                 

                    // open new window as logged in user
                    //window.open('http://www.example.com/');
                    window.open('http://www.example.com/', 'myNewPage');
                } 
                else
                {
                    $myElem.html('<p><b class="text-red">Error!</b> &nbsp;Please select a valid …
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery

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

php 8.1 -explode():不推荐将 null 传递给字符串类型的参数 #2 ($string)

我想解决 8.1 中一些已弃用的错误。

PHP Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in...

//explode uids into an array
$comp_uids = explode(',', $result['comp_uids']);
Run Code Online (Sandbox Code Playgroud)

在这种情况下 $result['comp_uids'] 为空,这就是显示 null 错误的原因。我不确定他们为什么不赞成这种能力,但是建议进行哪些更改来避免这种情况?我看到类似的情况strlen(): Passing null to parameter #1 ($string) of type string is deprecated以及其他一些使用 8.1 的情况。

php php-8.1

28
推荐指数
3
解决办法
9万
查看次数

在$ form.serialize()ajax帖子中添加其他数据?

我有以下代码片段,我将序列化表单数据并通过ajax发布.我遇到过需要添加其他数据的情况.在这种情况下,我需要添加一个名为'selectedHours'的逗号分隔数组.这可能吗?

我正在创建'selectedHours',如下所示,它创建了一个列为"小时选择"类的列表项数组.在这方面没有使用表格值,输入等.

var selectedHours = [];
$('.hour-selected').each(function(k,v) {
    selectedHours.push($(v).text());
});

$.ajax({ 
    type: 'post',
    url: '/process/somepage.php',
    data: $form.serialize(),
    dataType : 'json'
}).done(function (response) {
... and so on...
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery serialization

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

SQLSTATE [HY000] [2002]资源暂时不可用 - mysql - innodb和pdo

在我的错误日志中获得大量结果,如下所示.数据库中的所有表都是innodb,就与这些表的任何交互而言,所有表都是带有预处理语句的pdo.

正如我所说,所有错误几乎与下面列出的错误相同,但是对于几个不同的页面会发生.无论页面如何,错误行总是指向我开始一个新语句的地步...例如$stmt = $db->prepare("........语句本身工作得非常好而没有错误所以我有点困惑于是什么导致了这一点.

对于不同的页面,这样的多个错误:

[25-Sep-2014 10:19:09 America/Chicago]无法连接数据库:SQLSTATE [HY000] [2002]资源暂时不可用[25-Sep-2014 10:19:09 America/Chicago] PHP致命错误:在第28行的/home/test/public_html/add_log.php中调用非对象的成员函数prepare()

示例将错误点设置为 - 在这种情况下$stmt = $db->prepare("具体为行.它始终指向开始新的准备语句的行.

$stmt = $db->prepare("
    SELECT 
        accounts.account_id,
        computers.computer_id,
        computers.status,
        users.user_id
    FROM accounts
    LEFT JOIN computers
        ON computers.account_id = accounts.account_id AND computers.computer_uid = :computer_uid
    LEFT JOIN users
        ON users.computer_id = computers.computer_id AND users.username = :username
    WHERE accounts.account_key = :account_key
");

//bindings
$binding = array(
    'account_key' => $_POST['account_key'],
    'computer_uid' => $_POST['computer_uid'],
    'username' => $_POST['username']
);
$stmt->execute($binding);   
//result (can only be one or …
Run Code Online (Sandbox Code Playgroud)

php mysql sql pdo

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

.each()完成后回调函数?

不确定这是否可行或如何进行.我在$ .ajax响应中使用以下内容,它完全正常,但是,我需要loadSlider();在循环完成迭代后调用该函数.

if (response.success)
{
    $.each( response.screenshots, function( index, value ) {
        //add the slide
        $( '#slider1' ).prepend( '<li data-id="'+value.screenshot_id+'"><img src="/showimage.php?show='+value.image_filename+'" alt=""></li>' );
        //add the pager
        $( '#rslides-pager' ).prepend( '<li><a href="javascript:;"># here</a></li>' );
    });

    //want to call loadSlider(); AFTER everything above is completed                        
}
Run Code Online (Sandbox Code Playgroud)

each jquery

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

开启/关闭时Bootstrap 3手风琴造型

试图对bs3手风琴进行风格化......我在标题和正文中添加了一个图像.我设法在悬停和/或打开时在关闭和蓝色文本上设置黑色标题文本.

如何在悬停和/或打开时更改"panel-heading"的背景颜色?我尝试了很多没有结果的事情.通过添加/删除样式,这是否只是一个jquery解决方案?

<div class="panel panel-faq">
    <div class="panel-heading">
        <h4 class="panel-title">
            <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion1" href="#accordion1_2">
                1. Some title goes here
            </a>
        </h4>
    </div>
    <div id="accordion1_2" class="panel-collapse collapse">
        <div class="panel-body">
                sample entry text goes here
        </div>
    </div>
</div>


.panel-faq{
    border-color: #dddddd;
}
.panel-faq .panel-heading {
    color: #333333;
    background:#f5f5f5 url('/assets/img/faq-question.png') no-repeat 10px center;
    padding-left: 45px;
    border-color: #dddddd;
}

.panel-default > .panel-heading + .panel-collapse .panel-body {
  border-top-color: #dddddd;
}

.panel-default > .panel-footer + .panel-collapse .panel-body {
  border-bottom-color: #dddddd;
}

.panel-faq .panel-body {
    background: url('/assets/img/faq-answer.png') …
Run Code Online (Sandbox Code Playgroud)

css jquery accordion twitter-bootstrap-3

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

datatables 1.10和自定义排序功能

我需要按工作日(星期一,星期二,星期五,星期四,星期五,星期五,星期日)对列进行排序,似乎无法使其正常工作.请注意,我使用的是最新的1.10版本的数据表.

它与其他扩展一起位于其自己的文件中,并在加载jquery.dataTables.js之后调用,但在表初始化之前调用.

/* custom sorting by weekday */
$.extend( $.fn.dataTableExt.oSort, {
    "weekday-pre": function ( a ) {
        return $.inArray( a, ["SUN","MON","TUE","WED","THU","FRI","SAT"] );
    },
    "weekday-asc": function ( a, b ) {
        return ((a < b) ? -1 : ((a > b) ? 1 : 0));
    },
    "weekday-desc": function ( a, b ) {
        return ((a < b) ? 1 : ((a > b) ? -1 : 0));
    }
} );
Run Code Online (Sandbox Code Playgroud)

然后在我的表初始化中,我指定了这个特定列的排序.值可以/将仅来自数据库的"SUN","MON","TUE","WED","THU","FRI","SAT".

"columns": [
        ..... some column entries,
    {
        "data": "day",
        "type": …
Run Code Online (Sandbox Code Playgroud)

javascript jquery datatables

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

datatables 1.10 add.row()在ajax响应中不起作用

使用带有dom创建表的数据表1.10.我试图在ajax响应中添加一行新数据,但没有任何反应.相同的代码本身(没有ajax)工作得非常好.是的,response.success返回'true'.

//这可以工作并将新行添加到表中

$('#test').on('click', function () {
    dt.row.add( [
        'td0',
        'td1',
        'td2',
        'td3'
    ] ).draw();
});
Run Code Online (Sandbox Code Playgroud)

//相同的代码在ajax响应中不起作用...

$('#dtCreate').on('click', function () {

    $.ajax({
        type: 'post',
        url: '/test/process/p_db_create.php'
    }).done(function (response) {

        //double check response
        console.log(response);

        if (response.success)
        {
            //add the row since this is not serverside
            dt.row.add( [
                'td0',
                'td1',
                'td2',
                'td3'
            ] ).draw();
                ...more code below...
Run Code Online (Sandbox Code Playgroud)

ajax jquery datatables jquery-datatables

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

将值存储在VARCHAR中会发生什么情况,这超出了SQL的限制?

如果我设置一个varchar(255)列,如果我尝试插入超过255个字符会有错误,还是会将插入的值连接到前255个字符?

mysql sql varchar

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

SQLSTATE [HY000] [2002]连接超时

偶尔在我的错误日志中记录这个并想知道问题:

[04-Oct-2014 13:25:42 America/Chicago]无法连接数据库:SQLSTATE [HY000] [2002]连接超时[2014年10月4日13:25:42美国/芝加哥] PHP致命错误:在第28行的/home/spconlin/public_html/spc_app/app/add_log.php中调用非对象的成员函数prepare()

连接脚本:

<?php

if(!defined('INCLUDE_CHECK')) die('You are not allowed to execute this file directly');

// db config
$db_host        = '127.0.0.1';
$db_database    = '*****';
$db_user        = '*****';
$db_pass        = '*****'; 

//db connection
try {
    $db = new PDO("mysql:host=$db_host;dbname=$db_database;charset=utf8", $db_user, $db_pass, 
        array(
            PDO::ATTR_EMULATE_PREPARES => false, 
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //PDO::ERRMODE_SILENT is default setting
            PDO::ATTR_PERSISTENT => false
            )
    );
}
catch(PDOException $e) {
    error_log("Failed to connect to database: ".$e->getMessage());
}

?>
Run Code Online (Sandbox Code Playgroud)

我做了什么 :

  • 在连接中从"localhost"切换到127.0.0.1
  • 将持久连接切换为false

在对我的连接进行上述更改之前,我得到的SQLSTATE[HY000] [2002] Resource …

php mysql pdo

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