2013-03-17 24 views
1

我有一些麻煩我的腳本設置從後一個數組公共陣列

的問題是,如果我有一個JSON數組,我通過郵局得到,我想 其設置爲公共陣列使我可以在我的功能之外使用它。 這是我的代碼。

HTML代碼:

<input name="myValue"> 

jQuery代碼:

var myArray = newArray(); 

$(document).ready(function(){ 

    $('input[name="myValue"]').foucusout(function(){ 
    var postValue = $(this).val(); 
    $.post('myPhp.php',{post:postValue},function(data){ 

     var JsonArray = $.parseJSON(data); 
      myArray = JsonArray; 
    }; 

}): 

PHP代碼;

<? 

if(isset($_POST["post"])){ 

$myVal = $_POST["post"]; 

$db = mysql_query("SELECT * FROM parts WHERE code = '$myVal'"); 
$result = mysql_fetch_array($db); 

echo json_encode($result); 
}  
?> 

這不是設置myArray。 我在做什麼錯?

編輯

jQuery代碼:

var myArray = new Array(); 
$(document).ready(function(e) { 


    $('input[name=myValue]').focusout(function(e) { 
     var myPost = $(this).val(); 
     $.post('myPhp.php',{part:myPost},function(data){ 
       myArray = $.parseJSON(data); 
       alert(myArray[2]); 
      }); 
    }); 

    $('button[name=getArrayValue]').on("click",function(){ 
      alert(myArray[3]); 
     }); 
}); 

HTML代碼

<input name="myValue"> 
<button name="getArrayValue">Get</button> 

當我事件的內容進行輸入字段我得到的警報從陣列,當白衣我的第二個值i按下按鈕,我從我的第三個陣列位置獲得值。 所以它現在工作。

感謝您的幫助。

+3

您正在使用不推薦使用的庫和SQL注入漏洞代碼 – Sam 2013-03-17 14:25:40

+0

控制檯中的任何錯誤?任何PHP錯誤?你確定MySQL查詢實際上選擇了什麼嗎? – 11684 2013-03-17 14:25:51

+0

在查詢之前,您甚至不連接到數據庫。 – 11684 2013-03-17 14:27:25

回答

0

在查詢它之前,您沒有連接到數據庫。如果您沒有連接到數據庫,查詢如何選擇?

您的查詢之前補充一點:

$username = //your DB username 
$password = //your DB password 

mysql_connect("localhost", $username, $password); 

你真的應該使用非棄用API,比如PDO或MySQLi的。

編輯:

這很簡單:AJAX調用是異步的,所以在運行事件的內容處理程序後,則數組被設置。這是對事件的內容發生了什麼:

  1. 該事件的內容處理程序被調用
  2. 你告訴了jQuery作出AJAX調用供電時AJAX請求完成應運行的功能。
  3. 專注處理程序完成並嘗試提醒尚未設置的陣列
  4. AJAX請求結束,jQuery調用您提供的函數。
  5. 然後,數組已設置,在您的focusout處理程序之後很久。
+0

這是不是我有這個問題,我得到的數組從php – 2013-03-17 14:32:50

+0

啊。你是如何驗證?@NamirDžilić – 11684 2013-03-17 14:33:39

+0

如果我警告我的JsonArray裏面的職位功能,我可以看到我的數據但如果我提醒myArray foucusout函數外,我得到未定義的真正的代碼是不容易的這是簡單的代碼版本,但我認爲這應該設置myArray JsonArray – 2013-03-17 14:56:36