Javascript 从php数组检查inArray
PHP: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) {
$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数组,对吗?