【发布时间】:2019-01-03 18:33:40
【问题描述】:
我想在变量 selector 上指定的输入字段中创建一个单词检查脚本。单词列表是从数据库中提取的。我已经为数据库提供了查询。数据库的结果是
>Array
>(
>[0] => Skype
>[1] => Phone
>[2] => Whatsapp
>[3] => Mobile
>[4] => Gmail
>[5] => email
>[6] => viber
>)
我正在使用上面的这些词在我的 javascript 中为 if 语句创建字符串。 $a 的结果是
$(selectors)[0].value.search(/Skype/i) !== -1 || $(selectors)
[0].value.search(/Phone/i) !== -1 || $(selectors)
[0].value.search(/Whatsapp/i) !== -1 || $(selectors)
[0].value.search(/Mobile/i) !== -1 || $(selectors)>>
[0].value.search(/Gmail/i) !== -1 || $(selectors)
[0].value.search(/email/i) !== -1 || $(selectors)
[0].value.search(/viber/i) !== -1
之后我尝试将此字符串作为条件传递给脚本,它每次都会执行警报。我希望它仅在单词匹配时执行。
我已经试过写了
$(selectors)[0].value.search(/Skype/i) !== -1 || $(selectors)
[0].value.search(/Phone/i) !== -1 || $(selectors)
[0].value.search(/Whatsapp/i) !== -1 || $(selectors)
[0].value.search(/Mobile/i) !== -1 || $(selectors)
[0].value.search(/Gmail/i) !== -1 || $(selectors)
[0].value.search(/email/i) !== -1 || $(selectors)
[0].value.search(/viber/i) !== -1
在 if 语句中,它工作得非常好,但我想要这样做的原因是我不想回到代码并在每次我想添加单词时在 if 语句中添加另一行
<?php
//testing
$words = array();
$a='';
foreach($db->getRecordSet('SELECT * FROM conversationKeywords WHERE conStatus = :conStatus',array(':conStatus'=>1)) as $results){
array_push($words,$results['conKeyWord']);
}
/* //DEVELOPER DEBUGGIN PURPOSES ONLY, UNCOMMENT ON DEVELOPER MACHINE
echo '<pre>';
print_r($words);
echo '</pre>';
*/
foreach($words as $values){
if(!next($words)) {
$a.= '$(selectors)[0].value.search(/'.$values.'/i) !== -1';
}
else{
$a.= '$(selectors)[0].value.search(/'.$values.'/i) !== -1 || ';
}
}
//echo $a;
?>
<script>
var selectors = "#msg_text,#Message_Text,#job-desc";
var conditions = <?php echo json_encode($a) ?>;
console.log(conditions);
$("body").on("keyup",selectors,function(conditions){
if(warning !== true){
//var v = $('#msg_text').val();
if (conditions){
//alert("Warning! For safety and quality assurance, Please note that we kindly request all parties to communicate only through us.");
alertify
.alert("Warning!","For safety and quality assurance,we kindly request that all parties communicate ONLY through us.", function(){
alertify.message('OK');});
//warning = true;
}
}
});
</script>
【问题讨论】:
-
我认为JSON 可能是您解决方案的一部分。使用 PHP 将 JSON 输出到您的页面。然后引用 PHP 传入的内容实现所需的 javascript 代码。
-
如果您想将数据传递给 javascript,请使用 json_encode。但是你的逻辑有点绕。在后端做搜索逻辑会更容易。只需创建接受单词并返回是否找到的方法。然后,当用户提交表单或进行更改时,您可以将此方法与 AJAX 一起使用...
标签: javascript php