0

我有一个单页 VXML 脚本,我已将拨号 DTMF 传递给一个表单,并且工作正常。

但我也想将值传递给 PHP 变量。

那可能吗 ?

<prompt> <value expr="Digits"/> </prompt>

这可行,但是如何在 PHP 中将“数字”分配给 $test ?

谢谢

4

1 回答 1

2

在 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 文档。

于 2013-03-25T19:34:02.180 回答