如何编写调用我的PHP代码的脚本? 此脚本应包含Filemaker数据库中的记录。
答案 0 :(得分:1)
您可以使用"从网址插入"脚本步骤调用PHP并使其执行某些操作。我能够在服务器端脚本中使用它来调用带有URL中的一些参数的PHP脚本。这让我可以让Filemaker与另一个服务的PHP API交谈。不确定这是否能回答你的问题(或者它是否仍然是一个问题),但我认为我会分享。
答案 1 :(得分:1)
我遇到了类似的问题,我想要一个FileMaker操作来触发一个脚本,该脚本会提醒网站某些内容已经发生变化。我在FileMaker Pro 11中工作,所以Insert from URL
不是一个选项(虽然我希望它如何)!
我创建了一个名为Sync的FileMaker脚本并给它一个动作:Perform AppleScript
(显然这只适用于Mac;你可以在Windows中使用Send DDE Execute
实现类似的功能。)
在“脚本步骤选项”中,我将Perform Applescript
设置为Calculated AppleScript
,并将其设置如下:
"do shell script \"curl http://example.com/sync.php?id=" & Get( RecordID ) &
"\\\&layout=" & GetAsURLEncoded( Get( LayoutName ) ) & "\\\&table=" &
GetAsURLEncoded( Get( LayoutTableName ) ) & "\""
注意所有引号和引号的转义。
要在更改内容时执行此操作,请转到文件»管理»布局,然后选择用户可能正在编辑记录的布局,然后单击Edit
。在生成的“布局设置”对话框中,转到Script Triggers
,对于事件OnRecordCommit
,选择刚刚创建的同步脚本。
现在每当在该布局中修改记录时,将运行同步脚本,该脚本执行执行shell命令curl
的AppleScript,发送GET请求以达到以下效果:
curl http://example.com/sync.php?id=123&layout=Edit%20Records&table=Records
从那里开始,使用sync.php
和$_GET['id']
以及$_GET['layout']
或类似的传递变量,创建$_GET['table']
以便在加载时执行智能操作。
使用这种方法的一个警告是FileMaker在shell脚本执行时被冻结,在这种情况下意味着直到curl接收响应或超时。虽然您可以将超时设置得非常低(添加参数--output /dev/null --silent --head --fail --connect-timeout 1
),但它仍然会导致用户延迟一秒左右,如果用户正在编辑大量记录,这可能会很明显。如果有人有这方面的解决方案,或者导致脚本在后台异步运行的方法,请告诉我。
答案 2 :(得分:0)
是的,FileMaker提供了一个PHP API:
答案 3 :(得分:-1)
在为自己的文件添加编码之前,请尝试获取示例API代码以使用FMServer_Sample数据库。