Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从php数组检查inArray_Javascript_Php_Jquery_Arrays - Fatal编程技术网

Javascript 从php数组检查inArray

Javascript 从php数组检查inArray,javascript,php,jquery,arrays,Javascript,Php,Jquery,Arrays,PHP: $ports = $Db->query('SELECT port FROM servers'); $("#port").on('keyup', function(){ var port = $("#port").val(); var portlist = <?php print(json_encode($ports)); ?>; if(jQuery.inArray(port, portlist[port])!==-1) {

PHP:

$ports = $Db->query('SELECT port FROM servers');
$("#port").on('keyup', function(){
    var port = $("#port").val();
    var portlist = <?php print(json_encode($ports)); ?>;

    if(jQuery.inArray(port, portlist[port])!==-1)
    {
        $("#result").removeClass("label-success");
        $("#result").removeClass("label-warning");
        $("#result").addClass("label label-danger");
        $("#result").html("Port belegt!");
    }
    else
    {
        $("#result").removeClass("label-danger");
        $("#result").removeClass("label-warning");
        $("#result").addClass("label label-success");
        $("#result").html("Port Frei!");
    }



})
<?php
$q = $db->query("SELECT port FROM ports");
$ports = array();
while($$row = $result->fetch_assoc()){ 
            $ports[] = $row['port'];
        } 
?>
$("#port").on('keyup', function(){
var port = parseInt($(this).val());
var portlist = <?php print(json_encode($ports)); ?>;

if(jQuery.inArray(port, portlist)===-1)
{
    $("#result").removeClass("label-success");
    $("#result").removeClass("label-warning");
    $("#result").addClass("label label-danger");
    $("#result").html("Port belegt!");
}
else
{
    $("#result").removeClass("label-danger");
    $("#result").removeClass("label-warning");
    $("#result").addClass("label label-success");
    $("#result").html("Port Frei!");
}
})
Javascript:

$ports = $Db->query('SELECT port FROM servers');
$("#port").on('keyup', function(){
    var port = $("#port").val();
    var portlist = <?php print(json_encode($ports)); ?>;

    if(jQuery.inArray(port, portlist[port])!==-1)
    {
        $("#result").removeClass("label-success");
        $("#result").removeClass("label-warning");
        $("#result").addClass("label label-danger");
        $("#result").html("Port belegt!");
    }
    else
    {
        $("#result").removeClass("label-danger");
        $("#result").removeClass("label-warning");
        $("#result").addClass("label label-success");
        $("#result").html("Port Frei!");
    }



})
<?php
$q = $db->query("SELECT port FROM ports");
$ports = array();
while($$row = $result->fetch_assoc()){ 
            $ports[] = $row['port'];
        } 
?>
$("#port").on('keyup', function(){
var port = parseInt($(this).val());
var portlist = <?php print(json_encode($ports)); ?>;

if(jQuery.inArray(port, portlist)===-1)
{
    $("#result").removeClass("label-success");
    $("#result").removeClass("label-warning");
    $("#result").addClass("label label-danger");
    $("#result").html("Port belegt!");
}
else
{
    $("#result").removeClass("label-danger");
    $("#result").removeClass("label-warning");
    $("#result").addClass("label label-success");
    $("#result").html("Port Frei!");
}
})
$(“#端口”).on('keyup',function(){
var port=$(“#port”).val();
var portlist=;
if(jQuery.inArray(端口,端口列表[port])!=-1)
{
$(“#结果”).removeClass(“标签成功”);
$(“#结果”).removeClass(“标签警告”);
$(“#结果”).addClass(“标签危险”);
$(“#result”).html(“PortBelegt!”);
}
其他的
{
$(“#结果”)。删除类(“标签危险”);
$(“#结果”).removeClass(“标签警告”);
$(“#结果”).addClass(“标签成功”);
$(“#结果”).html(“弗雷港!”);
}
})
为什么这不起作用

该数组包含
1234
7777
。 因此,如果我在html输入字段(
#port
)中键入
7777
,它应该执行第一个操作(如果为true)


但它总是进入else操作。

jQuery inArray接受数组作为第二个参数,而不是特定键

试试这个:

$("#port").on('keyup', function(){
var port = $(this).val();
var portlist = <?php print(json_encode($ports)); ?>;

if(jQuery.inArray(port, portlist)!==-1)
{
    $("#result").removeClass("label-success");
    $("#result").removeClass("label-warning");
    $("#result").addClass("label label-danger");
    $("#result").html("Port belegt!");
}
else
{
    $("#result").removeClass("label-danger");
    $("#result").removeClass("label-warning");
    $("#result").addClass("label label-success");
    $("#result").html("Port Frei!");
}
$(“#端口”).on('keyup',function(){
var port=$(this.val();
var portlist=;
if(jQuery.inArray(端口,端口列表)!=-1)
{
$(“#结果”).removeClass(“标签成功”);
$(“#结果”).removeClass(“标签警告”);
$(“#结果”).addClass(“标签危险”);
$(“#result”).html(“PortBelegt!”);
}
其他的
{
$(“#结果”)。删除类(“标签危险”);
$(“#结果”).removeClass(“标签警告”);
$(“#结果”).addClass(“标签成功”);
$(“#结果”).html(“弗雷港!”);
}
})

--编辑--

下面的方法对我很有用(如果portlist是array而不是json对象。如果不是,那么最好只循环结果,然后像下面这样创建数组)

PHP:

$ports = $Db->query('SELECT port FROM servers');
$("#port").on('keyup', function(){
    var port = $("#port").val();
    var portlist = <?php print(json_encode($ports)); ?>;

    if(jQuery.inArray(port, portlist[port])!==-1)
    {
        $("#result").removeClass("label-success");
        $("#result").removeClass("label-warning");
        $("#result").addClass("label label-danger");
        $("#result").html("Port belegt!");
    }
    else
    {
        $("#result").removeClass("label-danger");
        $("#result").removeClass("label-warning");
        $("#result").addClass("label label-success");
        $("#result").html("Port Frei!");
    }



})
<?php
$q = $db->query("SELECT port FROM ports");
$ports = array();
while($$row = $result->fetch_assoc()){ 
            $ports[] = $row['port'];
        } 
?>
$("#port").on('keyup', function(){
var port = parseInt($(this).val());
var portlist = <?php print(json_encode($ports)); ?>;

if(jQuery.inArray(port, portlist)===-1)
{
    $("#result").removeClass("label-success");
    $("#result").removeClass("label-warning");
    $("#result").addClass("label label-danger");
    $("#result").html("Port belegt!");
}
else
{
    $("#result").removeClass("label-danger");
    $("#result").removeClass("label-warning");
    $("#result").addClass("label label-success");
    $("#result").html("Port Frei!");
}
})

JS代码:

$ports = $Db->query('SELECT port FROM servers');
$("#port").on('keyup', function(){
    var port = $("#port").val();
    var portlist = <?php print(json_encode($ports)); ?>;

    if(jQuery.inArray(port, portlist[port])!==-1)
    {
        $("#result").removeClass("label-success");
        $("#result").removeClass("label-warning");
        $("#result").addClass("label label-danger");
        $("#result").html("Port belegt!");
    }
    else
    {
        $("#result").removeClass("label-danger");
        $("#result").removeClass("label-warning");
        $("#result").addClass("label label-success");
        $("#result").html("Port Frei!");
    }



})
<?php
$q = $db->query("SELECT port FROM ports");
$ports = array();
while($$row = $result->fetch_assoc()){ 
            $ports[] = $row['port'];
        } 
?>
$("#port").on('keyup', function(){
var port = parseInt($(this).val());
var portlist = <?php print(json_encode($ports)); ?>;

if(jQuery.inArray(port, portlist)===-1)
{
    $("#result").removeClass("label-success");
    $("#result").removeClass("label-warning");
    $("#result").addClass("label label-danger");
    $("#result").html("Port belegt!");
}
else
{
    $("#result").removeClass("label-danger");
    $("#result").removeClass("label-warning");
    $("#result").addClass("label label-success");
    $("#result").html("Port Frei!");
}
})
$(“#端口”).on('keyup',function(){
var port=parseInt($(this.val());
var portlist=;
if(jQuery.inArray(端口,端口列表)=-1)
{
$(“#结果”).removeClass(“标签成功”);
$(“#结果”).removeClass(“标签警告”);
$(“#结果”).addClass(“标签危险”);
$(“#result”).html(“PortBelegt!”);
}
其他的
{
$(“#结果”)。删除类(“标签危险”);
$(“#结果”).removeClass(“标签警告”);
$(“#结果”).addClass(“标签成功”);
$(“#结果”).html(“弗雷港!”);
}
})

您需要通过引用并删除[port]将数组中的整数转换为字符串 下面是一个代码的工作示例


if(jQuery.inArray(port,portlist[port])!=-1)
更改为
if(jQuery.inArray(port,portlist)!=-1)
。否则,您需要检查portlist[port]是否存在,而这不是inArray。嗯,好的。但是变量portlist只包含
[object object]
,所以php中的值是字符串,对吗?如果没有mysql查询(
var-portlist=[“1234”,“777”];
),它就可以工作了..我猜是这样。如果php输出
[12347777]
[“1234”,“7777”]
,请检查源代码。如果是第一个,您总是可以使用(string)$intvals键入整数值。这是php(
print\r
)的输出:
Array([0]=>Array([port]=>7777)[1]=>Array([port]=>1234))
端口似乎是整数。只需迭代数组并将其解析为字符串
foreach($port as$key=>$port){$port[$key]=(string)$port;}
然后尝试以下操作:
foreach($port as$port){$portArr[]=$port['port'];}$portJson='[“'。内爆('',“,$portArr)。''']
但是没有指定的键,我只得到
[object object]
:请告诉您在打印json\u encode($ports)后在portlist变量中得到了什么?当然。我得到了
[{“端口”:7777},{“端口”:1234}]
正如我所想-你得到了它被解析为json对象,这就是为什么你得到了返回对象-很明显,对吗?请看我的编辑回答:)致以最良好的祝愿。我感到困惑:S。您的示例没有使用php数组,对吗?