2017-09-13 24 views
0

我正在爲基於數據庫的頁面創建按鈕限制。如果一個單元格是== A,我可以使用json_encode。 但我想驗證如果json結果包含字母A.JavaScript條件如果json_encode包含數據庫查詢中的字符

數據庫:
| id |配置|
| 02 | ABCD |

請查看下面

我當前的代碼我restriction.php頁面上

if($client >= 0){ 
$data = $con->query("SELECT Config FROM data WHERE id = ".$userid." limit 1;"); 
$configuration_data = $data->fetch_assoc(); 
} 
echo '<script>window.configuration_data = '.json_encode ($configuration_data).'</script>'; 
我config.js

驗證碼驗證僅當結果爲A,但如果該小區有一個我想字母A

if(window.configuration_data.Config == "A"){ 
    $('.Modify').hide(); 
} 
+0

爲什麼不直接從數據庫查詢限制內容? – slig36

+1

@ slig36,但他爲特定用戶帶來了配置。他可以隱藏一些東西,並根據配置的內容顯示其他內容。 – Dmitry

回答

1

window.configuration_data = {"Config":"ABCD"}; 
 
if(window.configuration_data.Config.indexOf('A') > -1) { 
 
    console.log('hide .Modify here') 
 
    //$('.Modify').hide(); 
 
}

1

檢查字符串是否包含「A」字符。

if(window.configuration_data.Config.indexOf("A") != -1){ 
    $('.Modify').hide(); 
} 
1

您可以使用MySQL LIKE子句,LIKE '%A%'

$data = $con->query("SELECT Config FROM data WHERE id = ".$userid." AND Config LIKE '%A%' limit 1;");

此查詢僅返回值,如果配置單元有字母A上值。

或者你可以使用JavaScript來比較串,如:

var string = window.configuration_data.Config, 
substring = "A"; 
string.indexOf(substring) !== -1;` 

使用搜索或RexEx你也能實現這一目標。

var string = "foo", 
    expr = /oo/; 
string.search(expr); 

var string = "foo", 
    expr = /oo/; 
expr.test(string); 
+0

我的情況是在JavaScript上,所以我決定使用.indexof – OFBrc

+0

您對'LIKE'的使用對於數據庫來說很糟糕,請在閱讀MySQL建議人們使用它之前先閱讀索引文本。 'A%'或'%A'都可以,但'%A%'會導致MySQL執行全表搜索。 – HostFission

+0

你有什麼建議?你可以發表評論,這樣他可以從中得到一些幫助。如果你準備好了他的問題,你會發現'A'可以存儲在數據庫中。是使查詢更慢,但它被禁止使用?如果我必須用'%A%'搜索怎麼辦? –

相關問題