在AS3中获取php的值

时间:2015-06-24 02:53:51

标签: php mysql actionscript-3 flash

我已经设法从我的AS3代码中的sql表中获取值,但我不明白为什么我无法获得第二个值。

在我的php文件中,我有:

// create SQL
 $sql = "SELECT * FROM dt_base where username = '$username'";

// execute SQL query and get result
 $sql_result = mysql_query($sql, $connection) or die ("Couldn't execute query.");

// get number of rows in $result.
 $num = mysql_numrows($sql_result);

$phpConfirm = "";
$phpConfirmSecond = "";
$counter = 0;

while ($row = mysql_fetch_array($sql_result)) {

 $up= $row["up"];
 $down= $row["down"];
 if ($counter == 0) {
 $phpConfirm .= $up;
 $phpConfirmSecond .= $down;

 } else {
 // Use a item limiter "|" to seperate the records
 $phpConfirm .= "|" . $up;
 $phpConfirmSecond .= "|" . $down;
 }
 $counter++;
 }
?> 

在我的AS3代码中:

function loadComplete(evt:Event):void {

    //Display the value with variable name "totalItem"
    total_txt.text = evt.target.data.totalItem

    //Get the value (string) with variable name "phpConfirm"
    var myResult:String = evt.target.data.phpConfirm;
    trace(evt.target.data.phpConfirm);

    var myResultSecond:String = evt.target.data.phpConfirmSecond;
    trace(evt.target.data.phpConfirmSecond);


//Split the string into an Array
    var myArray:Array = myResult.split("|");
    var myArraySecond:Array = myResultSecond.split("|");

    var finalString = "";
    var finalStringSecond = "";
    var i:int;

    for (i = 0; i < myArray.length; i++) {

        finalString = finalString + myArray[i] + "<br>";
        finalStringSecond = finalStringSecond + myArraySecond[i] + "<br>";
    }

    output_txt.htmlText = finalString;
    output_txtSecond.htmlText = finalStringSecond;
}

trace(evt.target.data.phpConfirm)会产生“up”的值,所以它正在运行。 但是trace(evt.target.data.phpConfirmSecond)导致“未定义”而不是“向下”的值。

知道为什么吗?

修改

我已将其添加到我的php文件中。

echo "phpConfirm=" . $phpConfirm . "&phpConfirmSecond=" . $phpConfirmSecond;

我更改了行$username = "John";,以便在网络浏览器中对其进行测试。

结果是:

phpConfirm = 6H 2 O&安培; phpConfirmSecond = 14h32

所以phpConfirmSecond有一个值。

但是当我的php文件中有PhpConfirmSecond时,我的AS3代码会产生错误。 这是错误:

TypeError: Error #2007: Le paramètre text ne doit pas être nul.
    at flash.text::TextField/set text()
    at as3_php_mysql_01_fla::MainTimeline/loadComplete()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at flash.net::URLLoader/onComplete() 

如果我擦除了我的php文件的PhpConfirmSecond的每一条痕迹,我的AS3代码可以工作并找到值PhpConfirm。

1 个答案:

答案 0 :(得分:0)

发现问题。这是行

 //Display the value with variable name "totalItem"
    total_txt.text = evt.target.data.totalItem

导致所有问题......

感谢您的帮助。