2013-03-29 45 views
0

我想調試一個內置在Flash中的聯繫表單,但我不知道如何去調試這個。從ActionScript中,我可以判斷它應該將結果發佈到/assets/files/functions.php。問題是,當我填寫字段並點擊'發送'(應該觸發這個)時,沒有任何反應,我不知道它是PHP問題還是閃存問題。ActionScript - 聯繫表單不工作

有沒有關於如何調試的想法?

該網站可能是found here,點擊「連接」後點擊「發送查詢」即可看到該表單。

的代碼可以在下面看到:

lvOut = new LoadVars();    //create lv object 
lvIn = new LoadVars();    //create lv object 
lvIn.onLoad = function (success) { 
if(success){ 
    gotoAndPlay("success"); 
}else{ 
    gotoAndPlay("failure"); 
} 
} 

function submit() { 
if ((inputName.text != "") && (inputAddress.text != "") && (inputCity.text != "") && (inputState.text != "") 
     && (inputCountry.text != "") && (inputTelephone.text != "") && (inputEmail.text != "")) { 
     lvOut.input_name = inputName.text; 
     lvOut.input_address = inputAddress.text; 
     lvOut.input_city = inputCity.text; 
     lvOut.input_state = inputState.text; 
     lvOut.input_zip = inputZip.text; 
     lvOut.input_country = inputCountry.text; 
     lvOut.input_telephone = inputTelephone.text; 
     lvOut.input_email = inputEmail.text; 
     lvOut.input_bedrooms = inputBedrooms.text; 
     lvOut.input_realtor = inputRealtor.text; 
     lvOut.input_comments = inputComments.text; 

     if (realtorYes) { 
      lvOut.input_hasRealtor = "yes"; 
     } else if (realtorNo) { 
      lvOut.input_hasRealtor = "no"; 
     } else { 
      lvOut.input_hasRealtor = "no answer"; 
     }  

     //send vars to functions page and load in result 
     lvOut.sendAndLoad("assets/files/functions.php", lvIn, "POST"); 
} 
} 

btnSend.addEventListener("click", submit); 

請幫我出盡可能多的! :-)

+0

如果你發佈了一些代碼,我們也許能夠提供幫助。 –

+0

好點。現在添加代碼..很抱歉! –

回答

0

你的Flash應用程序有問題:它什麼都不發送。我剛剛進入您使用Chrome所說的網頁,並在「開發人員工具」菜單中打開了「網絡」選項卡。它在「發送」按鈕點擊時捕獲了0個請求。我不知道AS2(saveAndLoad是AS2方法),所以我不能說出了什麼問題,但是here 是AS3中POST請求的一個工作示例。

0

嘗試通過使用URLLoader類採取不同的方法。我假設你的functions.php文件在某處在線。

const SITE_DOMAIN:String = "PUT_YOUR_SITE_DOMAIN_HERE_UP_TO_ASSETS_FOLDER"; 
var loader = new URLLoader(); 
loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); 
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); 
loader.addEventListener(Event.COMPLETE, loadCompleteHandler); 

request = new URLRequest(); 
request.url = SITE_DOMAIN + "assets/files/functions.php"; 
request.method = URLRequestMethod.POST; 
loader.load(request); 

function loadCompleteHandler(event:Event):void 
{ 
    // handle load complete 
} 

function securityErrorHandler(event:SecurityErrorEvent):void 
{ 
    // handle security error 
} 

function ioErrorHandler(event:IOErrorEvent):void 
{ 
    // handle io error 
} 

希望得到這個幫助。

0

您的PHP腳本中有錯誤:http://nordicacondos.com/assets/files/functions.php 修復它,然後在您的AS代碼中嘗試一些跟蹤來查看發送到PHP的內容。

  1. 檢查您的非空值的測試工作是由內添加跟蹤,(我覺得你的問題是在這裏,因爲你的SWF發送即使填寫了所有字段沒有)
  2. 檢查lvOut對象前的內容送,在AS2你可以瀏覽內容這樣
for (var name in lvOut) { 
    trace(name +'->' + lvOut[name]); 
} 

的完整路徑添加到PHP腳本,所以你可以從Flash IDE測試。

  1. 添加微量的LVIN onload句柄檢查其登錄這樣的原始請求發射

您還可以檢查在PHP端:

$handle = fopen('log.txt', 'ab+'); 
fwrite($handle, print_r($_REQUEST, true)); 
fwrite($handle, PHP_EOL); 
fclose($handle); 

確保你已經在functions.php目錄寫了權限。

使用AS3將提供更好的控制當然... :)