我有一个单页 VXML 脚本,我已将拨号 DTMF 传递给一个表单,并且工作正常。
但我也想将值传递给 PHP 变量。
那可能吗 ?
<prompt> <value expr="Digits"/> </prompt>
这可行,但是如何在 PHP 中将“数字”分配给 $test ?
谢谢
在 VoiceXML 中,将变量传递到服务器端脚本的过程通常使用三个标签( 或 )之一<submit>
来<subdialog>
完成<data>
。所有这三个都支持提供 URL、HTTP 方法(get 或 post)和将发送到 Web 服务器的变量名称列表的标准约定。
假设您有一个相当简单的 VoiceXML 脚本:
<?xml version="1.0"?>
<vxml version="2.1">
<form>
<field name="Digits" type="digits">
<prompt>Please enter some digits.</prompt>
<filled>
<prompt>You entered: <value expr="Digits"/></prompt>
<submit next="path/to/script.php" method="post" namelist="Digits"/>
</filled>
</field>
</form>
</vxml>
然后,您将使用普通的 $_POST 变量访问 VoiceXML 中的变量:
<?php
$test = $_POST['Digits'];
echo("<?vxml version=\"1.0\"?>\n");
?>
<vxml version="2.1">
<form>
<block>
<prompt>You posted: <?=htmlspecialchars($test)?>.</prompt>
</block>
</form>
</vxml>
这种架构允许 VoiceXML 运行为具有 HTTP POST 和响应的传统 Web 服务器/Web 浏览器。您还可以使用该<data>
标签更接近地模仿现代 AJAX 风格的应用程序,您可以在其中发布名称/值对并返回可以使用普通 Javascript DOM 访问的任意 XML 文档。