2013-11-19 2 views
1

Я новичок в AS3, и я пытаюсь сделать файл типа поиска в php (чтобы вывести информацию, которая соответствует имени пользователя), и вернуть результат в AS3. Php возвращает все переменные в AS3, за исключением первого, который входит, когда он петли второй раз, все переменные проходят через ok. Я также пытаюсь выполнить поиск по нескольким полям и вернуть результаты в AS3 с аналогичными принципами, но такая же проблема возникает. Пожалуйста, помогите мне увидеть, если это PHP ошибки или AS3 issue.Thanks для своего времениОшибка Php или AS3? Ошибка # 2007: текст параметра должен быть не нулевым

Autoresult.php

<?php 
ini_set('display_errors', 1); error_reporting(E_ALL); 

session_start(); 

include 'connect.php'; 



$username=$_SESSION['username']; 


$result=mysqli_query($con,"SELECT * FROM Automatch WHERE username = '$username'")or die(mysqli_error($con)); 
$solutions = array(); 
while ($row = mysqli_fetch_assoc($result)) 
     { 

      print "nobed=".$solutions[0]=$row['nobed']; 
     print "&zip=".$solutions[1]=$row['zip']; 
     print "&rangelow=".$solutions[2]=$row['rangelow']; 
    print "&rangehigh=".$solutions[3]=$row['rangehigh']; 
     } 

     ?> 

BookVo2.as

package com.clark 
{ 

    import flash.display.*; 
    import flash.net.*; 
    import flash.events.*; 
    import flash.net.URLRequest; 
    import flash.net.URLRequestMethod; 
    import flash.net.URLLoaderDataFormat; 
    import flash.net.URLVariables; 


    public class BookVO2 
    { 
     public var nobed:String; 
     public var zip:String; 
     public var rangelow:String; 
     public var rangehigh:String; 
     public var Bend:URLRequest; 
     public var variabless:URLVariables; 
     public var nLoader:URLLoader; 
     public var callMethod:Function; 


     public function BookVO2(listener:Function = null) { 


      Bend = new URLRequest("http://localhost/Autoresult.php"); 
      Bend.method = URLRequestMethod.POST; 

      variabless = new URLVariables(); 
      Bend.data = variabless; 


      nLoader = new URLLoader(); 
      nLoader.dataFormat = URLLoaderDataFormat.TEXT; 
      nLoader.addEventListener(Event.COMPLETE,Jandler); 
      nLoader.load(Bend); 
       if (listener != null) { 
       callMethod = listener; 
      } 
     } 

      public function Jandler(event:Event) { 
      // handler for the PHP script completion and return of status 
      var responseVariables:URLVariables = new URLVariables(event.target.data); 
      nobed = responseVariables.nobed ; 
      zip = responseVariables.zip; 
      rangelow = responseVariables.rangelow; 
      rangehigh = responseVariables.rangehigh; 

      if (callMethod != null) { 
       callMethod(this); 

    } 
     } 

    } 

} 

VectorTest.as

package com.clark 
{ 
    import flash.display.MovieClip; 
    import flash.text.TextField; 
    import flash.text.TextFieldAutoSize; 
    import flash.text.TextFormat; 
    import flash.text.TextFormatAlign; 
    import flash.display.Sprite; 

    public class VectorTest extends MovieClip 
    { 
      public var books:Vector.<BookVO2>; 
     public var counter:int = 0; 
     public function VectorTest() 
     { 

      books = new Vector.<BookVO2>(); 

      { 

      var book:BookVO2 = new BookVO2(response); 
       books.push(book); 
      } 


     } 


      private function response(book:BookVO2):void 

      { 

       trace("Name:",book.nobed); 
       trace("Zip:", book.zip); 
       trace("rangelow:", book.rangelow); 
       trace("rangehigh:", book.rangehigh); 


       // call finish() if this is the last book. 

       counter++; 

    if (counter == books.length) { 
     finish(); 

      } 
     } 

      private function finish():void { 
      var currentY:int = 270; 

      for (var k:int = 0; k < books.length; k++) 
      { 
       var Bolder:Listing2 = new Listing2(); 


       Bolder.x=80; 


       var tf:TextField = new TextField(); 
       var tf1:TextField = new TextField(); 
       var tf2:TextField = new TextField(); 
       var tf3:TextField = new TextField(); 

       tf3.width = 100; 
       tf.defaultTextFormat = new TextFormat("Arial", 12, 0, null, null, null, null, null, TextFormatAlign.CENTER); 

       tf.width = 100; 
       tf.autoSize = TextFieldAutoSize.CENTER; 
       tf1.width = 100; 
       tf1.autoSize = TextFieldAutoSize.CENTER; 
       tf2.autoSize = TextFieldAutoSize.CENTER; 
       tf3.autoSize = TextFieldAutoSize.CENTER; 
       tf3.width = 100; 
       tf1.y= tf.height+5; 



        // Pulling the textfields content out from the current bookVO 

       tf.text = books[k].nobed; 
       tf1.text = books[k].zip; 
       tf2.text = books[k].rangelow; 
       tf3.text = books[k].rangehigh; 

       tf1.x = (Bolder.height-tf.height)*.5 
       tf3.x = (Bolder.height-tf.height)*.5 


       tf.x = (Bolder.height-tf.height)*.5 
       tf.y = (Bolder.height-tf.height)*.15 
       Bolder.addChild(tf); 
       Bolder.addChild(tf1); 
       Bolder.addChild(tf2); 
       Bolder.addChild(tf3); 


        // position the object based on the accumulating variable. 
       Bolder.y = currentY; 



       addChild(Bolder); 

       currentY += Bolder.height + 35; 
      } 

     } 

    } 

} 
+0

ошибка ошибка as3, ну это то, что вы мне дали, это означает, что текстовое поле что-то ожидает, но вы ничего не даете .... также с вашим php вам не придется печатать все строки или переменные, толкают все элементы в массив и строят строку http. – joshua

+0

Я прихожу, чтобы подумать, что это так, как я поставил php, потому что знатная строка слилась с диапазоном высокой строки как таковой rangehigh: fsefesnobed = test, testnobed = ben, test Не уверен, как я ее исправить, и что я не могу добавить знак & знак перед знатным, поскольку это первая переменная – Benyaman

+0

Ситуация такова: это результат. Название: null Почтовый индекс: sef, tes, ben rangelow: sefse, tes, ben rangehigh: fsefesnobed = test, testnobed = ben, test Итак, есть вещи, поступающие с php, за исключением первого, имя, но имя слилось в rangehigh, поскольку оно петли. – Benyaman

ответ

0

Попробуйте что-нибудь вот так:

tf.text = books[k].nobed || ''; 
tf1.text = books[k].zip || ''; 
tf2.text = books[k].rangelow || ''; 
tf3.text = books[k].rangehigh || ''; 

или, возможно, это:

tf.text = ""; 
if (books[k].nobed !== null) tf.text = books[k].nobed; 
etc... 
+0

Я просто попробовал, ошибка исчезла, но теперь я думаю, что это так, как я положил php, потому что знатная строка слилась с диапазоном высокой строки как таковой rangehigh: fsefesnobed = test, testnobed = ben, test Не знаю, как это исправить, и я не могу добавить знак & знака перед знатным, поскольку это первая переменная. – Benyaman

0

объявить variabless = новые URLVariables();

, как

вар переменные: URLVariables = новые URLVariables();

Мгновенное действие будильника.

+0

Yup, но как вы думаете, проблема возникает из-за моего php? Потому что результат возвращается очень неловко. Имя и rangehigh слились, но Name показал Null на нем. Остальные переменные вернули все в окне вывода и в окне Тестирование. – Benyaman

Смежные вопросы