2017-09-13 11 views
0

データベースに基づくページのボタンの制限を作成しています。セルが== Aならjson_encodeを使うことができます。 しかし、jsonの結果に文字Aが含まれているかどうかを検証したいと思います。json_encodeにデータベースクエリの文字が含まれている場合のJavaScriptの条件

データベース:
| id | Config |
| 02 | ABCD |

結果がAである場合にのみ、このコードを検証し、私のrestriction.phpページに私のconfig.jsの上

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>'; 

以下の私の現在のコードを参照してくださいが、細胞が持っている場合、私は希望してください文字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"文字が含まれていないか確認してください。コンフィグセルが文字Aである場合

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

あなたが句LIKE MySQLを使用することができ、LIKE '%%'

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

は、このクエリは、値のみを返します値。あなたもこれをachiveすることができ、検索やRexExを使用して

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

それともなどのサブストリングを比較するためにJavaScriptを使用することができます。

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

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

私の状態はjavascript上にあるので、.indexofを使用することに決めました。 – OFBrc

+0

あなたの 'LIKE'の使用はデータベースにとってひどいものです。 'A%'または '%A'のいずれかがOKですが、 '%A%'はMySQLにフルテーブル検索を実行させます。 – HostFission

+0

あなたは何をお勧めしますか?彼はそれから何か助けを得ることができるようにコメントをすることができます。彼の質問を準備すれば、データベースに格納されている文字列の真ん中に 'A'があることがわかります。クエリは遅くなりますが、使用は禁止されていますか? '%A%'で検索しなければならないとどうなりますか? –

関連する問題