-3

我有两个用于名字和姓氏的文本框。管理员可以从相应的文本框中按名字或姓氏搜索记录。我进行 api 调用发送名字或姓氏来获取记录。

我想要的是只提供一个文本框。在这里,管理员可以输入名字或姓氏或全名。如何整理这些名称并进行 api 调用。如果用户只输入了名字,那么我在 api 调用中只发送名字。如果他提供了两个名字,我发送两个名字。我首先检查他输入的文本框,然后我进行 api 调用

$params = array( 
    'return' => array(
        'first_name',
        'display_name',
        'image_URL',
        'last_name',
        'phone',
        'email'
    ),
    'version' => 3,
    'sequential' => 1,
    'limit' => 25,
    'first_name' = "Shrinidhi",
    'last_name' = "Kulkarni"
);

$contact = civicrm_api('Contact', 'get', $params); 
4

3 回答 3

1

试试这个:

$sql = "SELECT 'first_name','display_name','image_URL','last_name','phone','email' from Contact where 'shrinidhi' in (first_name,last_name)";
CRM_Core_DAO::executeQuery($sql);

如需进一步参考: http ://www.vedaconsulting.co.uk/civicrm/civicrm-executing-custom-sql/

于 2014-08-14T06:58:37.793 回答
1

您应该使用这样的查询:

SELECT CONCAT(firstname, lastname) AS fullname FROM tablename WHERE fullname LIKE '%input%';

因此,您可以使用一个输入字段同时找到名字和姓氏。

享受您的代码!

于 2014-08-14T07:21:45.773 回答
0

您可以检查输入值中的空格并使用空格的位置提取名字和姓氏。如果输入值中没有空格,则应仅使用名字调用 API。

于 2014-08-14T07:14:42.667 回答