从post到public数组设置数组

时间:2013-03-17 14:21:58

标签: php jquery http-post json

我的剧本有点麻烦

问题是,如果我有一个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>

当我将焦点输出到输入字段时,我从数组中得到警告白色我的第二个值,当我按下按钮时,我从第三个数组位置获取值。 所以它现在正在运作。

感谢每个人的帮助。

1 个答案:

答案 0 :(得分:0)

在查询之前,您没有连接到数据库。如果你没有连接到数据库,查询怎么能选择一些东西?

在查询之前添加:

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

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

您确实应该使用不推荐使用的API,例如PDO或MySQLi。

修改

这很简单:AJAX调用是异步的,因此在运行focusout处理程序后设置数组。这就是关注重点:

  1. 焦点处理程序被调用
  2. 你告诉jQuery使一个AJAX调用成为一个函数,应该在AJAX请求完成时运行。
  3. 焦点处理程序完成并尝试提醒尚未设置的数组
  4. AJAX请求完成,jQuery调用您提供的函数。
  5. 然后在焦点处理程序之后设置数组。