很难写出一个简洁的问题而不是两个短语。
在我开始在mySQL查询中使用SUBSTR()之前,我的所有代码都能正常工作。
我有文件夹编号列表(F123456、F233999等)。
我有一个很好的函数,它可以检测用户在字段中的输入,如果输入的值在数组中,字段就会改变颜色。
过了一段时间我意识到不需要“F”,所以我使用SUBSTR(value,2,6)删除查询结果中的“F”,只返回剩下的6位数。查询在PMA窗口中以及在我print_r或var_dump结果时都有效。
但是看起来数组没有被完全读取,在javascript代码中。
这是一个查询,其中'value'是#所在列的名称。它位于variable
列中的'cust_folder'对面。
$getFileNumbers = $conn->query(" SELECT SUBSTR(value, 2, 6)
FROM smfqg_themes
WHERE variable = 'cust_folder' ");
while($rows = $getFileNumbers->fetch_object()) {
$fileNumberArray[] = $rows;
}
这是一个javascript:
<input type="text" size="10" id="idk" name="file_number" onblur="checkNumber()" onkeyup="checkNumber()" >
<script type="text/javascript">
const idk = document.getElementById('idk');
idk.addEventListener('input', checkNumber);
idk.addEventListener('focus', checkNumber);
idk.addEventListener('blur', checkNumber);
function checkNumber() {
const theArray = <?php echo json_encode($fileNumberArray); ?>;
if (theArray.includes(idk.value)) {
idk.style.background = "green"
} else if (theArray.find(item => item.value === idk.value) !== undefined) {
idk.style.background = "green";
}else {
idk.style.background = "red";
}
}
</script>
我是否遗漏了格式化步骤--使用SUBSTR--这是正确查看cont“theArray”所必需的?
我已经打印并转储了数组,使用别名和不使用别名,结果都生成了所有6位数的值。
我试过同时使用SUBSTR和(value,2,6)以及(value,-6,6),但是没有任何变化。
1条答案
按热度按时间dojqjjoe1#
当查询为
SELECT value ....
时当您将结果集中的列名更改为
SELECT SUBSTR(value, 2, 6)
时,该列名名为value
结果集中的列名名为
SUBSTR(value, 2, 6)
因此,为该列指定一个如下所示的别名
现在,该列将再次具有正确的名称,并且将具有
value
属性而不是SUBSTR(value, 2, 6)
属性然后寻址
idk.value
的javascript代码将再次工作。