突出显示数据库中找不到的数组项

时间:2014-03-07 10:24:33

标签: php jquery html ajax

我正在编写一个程序,通过提供多个序列号,使用php和jquery从SQL数据库中获取数据。每个序列号都在一个单独的输入中(所有在一起作为数组),而不是使用jquery ajax处理数据并将其传递给php文件。我无法弄清楚如何使用未建立的序列号突出显示或添加红色边框到输入。如果数组中只有一个输入,那么我可以这样做,但如果有更多输入则不能。有办法做到这一点吗?

到目前为止我累了多少

收集序列号:

  

var serial = $(“input [name ='getID []']”);

     

var arrayserial = serial.map(function(){return   “ ' ”+ $(本).VAL()+“'”;})得到();

使用以下命令将序列发送到php:

  
    

$。AJAX({                               类型:“POST”,                               url:“proccess.php”,                               数据:'serial ='+ arrayserial,                               成功:函数(数据){                                   $(”。结果)的html(数据);

  
                      }
                  });

在php文件

  

$ serial = $ _POST ['serial']; sqlsrv_query($ ConnReq,“SELECT * FROM   TestData INNER JOIN接受TestData.Applicant =   Acceptances.Acceptance_ID WHERE MN IN($ serial)“);

比我用

获取行
  

sqlsrv_fetch_array

我用

包裹了代码
  

if($ row_count!= 0){}< ==(对行计数的var)

  

else {echo“Nothing found

”;}< ==(如果只有一个输入,则此方法有效)

1 个答案:

答案 0 :(得分:0)

如果只是突出显示要么使用新的css创建一个类,要么通过jquery直接改变css应该可以解决问题。这是一个example,突出显示所有偶数序列号

将其应用于某个元素。例如,如果您只想突出显示第4个框,则可以更改:

$('#someForm input:nth-child(even)').

要:

$('#someForm input:nth-child(5)').

但我觉得这不是你唯一的问题,是吗?

编辑:解决您的其他问题:

您可以创建一个临时表,其中包含您要测试的序列号,并将它们与您在数据库中的序列进行比较。

示例:

CREATE TEMPORARY TABLE IF NOT EXISTS serials (ID VARCHAR(255));
INSERT INTO serials(ID) VALUES('1st Serial'),('2nd Serial'),('3rd Serial'),...,('n-th Serial');
SELECT * FROM serials WHERE serials.ID NOT IN (SELECT nameOfColumnWithSerials FROM YourTableWithSerials)

执行3个查询将导致第三个查询为您提供数据库中不存在的所有序列的列表,并且在关闭与数据库的连接后,临时表将消失。

那怎么样?