2013-03-25 36 views
0

我有一個頁面的VXML腳本,我已經通過撥號DTMF到一個窗體,並且工作正常。VXML值到PHP變量

但我也想將這個值傳遞給一個PHP變量。

這可能嗎?

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

這樣的工作,但如何將'數字'分配給PHP中的$測試?

感謝

回答

1

在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樣式的應用程序,您可以在其中對名稱/值對進行POST,並取回可以使用普通Javascript DOM訪問的任意XML文檔。

+0

非常感謝您的回覆。我希望使用''並將值傳遞給一個新表單,然後將其解析爲一個PHP變量。 這可能嗎? – MacMan 2013-03-25 20:21:00

+0

不幸的是,沒有。當您使用散列(#newform)時,您正在腳本內進行本地跳轉。出於好奇,你爲什麼需要將這個變量放到遠程PHP變量中才跳轉到本地表單項? – 2013-03-25 20:36:18

+0

輸入的值是一個數字,我想用它作爲數組的一個鍵。 例如:'echo $ new [$ test];' – MacMan 2013-03-26 08:52:15

-1

其實,你可以提交到更晚的表格。您可以使用$ _REQUEST ['Digits']從名單中抓取。

<form id="foo"> 
    <submit next="myPage.php#newForm" namelist="Digits" method="post" /> 
    </form> 
    <form id="newForm"> 
    <?php $test = $_REQUEST['Digits']; ?> 
    </form>