検索フィールドにアポストロフィが含まれていると、civicrm のオートコンプリート検索で結果が表示されません。コメントをいただければ幸いです。
2 に答える
1
これは civicrm の問題です " drupal_site\sites\all\modules\civicrm\CRM\Contact\Page\AJAX.php"
static function autocomplete() {
$fieldID = CRM_Utils_Type::escape($_GET['cfid'], 'Integer');
$optionGroupID = CRM_Utils_Type::escape($_GET['ogid'], 'Integer');
$label = CRM_Utils_Type::escape($_GET['s'], 'String');
$selectOption = CRM_Core_BAO_CustomOption::valuesByID($fieldID, $optionGroupID);
$completeList = NULL;
foreach ($selectOption as $id => $value) {
if (strtolower($label) == strtolower(substr($value, 0, strlen($label)))) {
echo $completeList = "$value|$id\n";
}
}
CRM_Utils_System::civiExit();
}
エスケープ機能を削除する必要があります。
$label = $_GET['s'];
私の問題を解決しました。
于 2014-08-21T15:45:31.467 に答える
0
addslashes();
次のようにphpの関数を使用して配列に追加する前に、文字列をエスケープする必要があります。
PHP:
$str="this a string with ' ";
$str=addslashes($str);
JS:
var string_from_php=<?php echo $str; ?>
そしてそれはうまくいくはずです。コードからスニペットを追加して、オートコンプリートに移動する配列を作成する場合、私ははるかに役に立ちます
于 2014-08-21T15:37:19.050 に答える