为什么我得到数组如何获取字符串

时间:2016-04-24 09:32:33

标签: javascript php jquery match

如果我的文字区域包含id leavepost且隐藏的div id display #我在隐藏的div中输入隐藏的div和单词 但是,当我想通过ajax将它发送到sul文件时,它会发送数组。 有什么问题?

$("#leavepost").keypress(function(event) {
    var key = (event.keyCode ? event.keyCode : event.which);
    if (key == 35) {
        $('#display').show();
        $('#leavepost').on('keyup', function() {
            var name = $(this).val().match(/(^|\s)(#[a-z\d-]+)/ig);
            $.ajax({
                type: "POST",
                url: "d/sul.php",
                data: { su: name },
                success: function(sss)
                {
                    $('#display').html(sss);

                }
            });
        }).keyup();
    }
});

在sul.php里面,我有:

echo $_POST['su'];
$u = mysqli_real_escape_string($con, $_POST['su']);

错误:

  

警告:mysqli_real_escape_string()期望参数2为字符串,   数组给出

3 个答案:

答案 0 :(得分:0)

// for example: "xzxzxz".match(/z/gi) // => [z,z,z] "xzxzxz".match(/z/gi)[0] // => "z" 返回一系列匹配测试。

.match(/(^|\s)(#[a-z\d-]+)/ig)[0]

使用.match(/(^|\s)(#[a-z\d-]+)/ig).join(",")获得第一场比赛。

或者您可以// for example "xzxzxz".match(/z/gi).join(",") // => "z,z,z" "xzxzxz".match(/z/gi).join("") // => "zzz" 以字符串形式发送所有测试匹配。

load()

答案 1 :(得分:0)

您在此代码var name = $(this).val().match(/(^|\s)(#[a-z\d-]+)/ig); String.prototype.match()中使用此方法返回:

  

包含整个匹配结果的数组   括号捕获的匹配结果,如果没有,则返回null   匹配。

所以你需要在php代码中使用$_POST['su'];变量和数组

一样

答案 2 :(得分:0)

这是因为JavaScript match函数返回一个数组。

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/match

您需要从该数组中提取name部分。 console.log(name)将为您提供数组的结构。