1

我的脚本有问题

问题是,如果我有一个通过 post 获得的 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>

当我关注输入字段时,我从数组中获得第二个值的警报,当我按下按钮时,我从第三个数组位置获得值。所以它现在正在工作。

感谢每个机构的帮助。

4

1 回答 1

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. focusout 处理程序完成并尝试提醒尚未设置的数组
  4. AJAX 请求完成,jQuery 调用您提供的函数。
  5. 然后在您的焦点处理程序之后很久设置数组。
于 2013-03-17T14:31:46.497 回答