Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将php数组移动到jquery中进行操作_Php_Javascript_Jquery_Arrays_Json - Fatal编程技术网

将php数组移动到jquery中进行操作

将php数组移动到jquery中进行操作,php,javascript,jquery,arrays,json,Php,Javascript,Jquery,Arrays,Json,我有一个页面,它通过PHP执行SQL查询并生成一个小数组。我希望同一页面上的jquery能够使用数组,或者更具体地说,使用数组中的变量 代码如下: $result = mysql_query("SELECT characters_ID, name FROM characters where whichfamily = '$famID' && deathdate = '' && isfemale = '0' && $currentturn >

我有一个页面,它通过PHP执行SQL查询并生成一个小数组。我希望同一页面上的jquery能够使用数组,或者更具体地说,使用数组中的变量

代码如下:

$result = mysql_query("SELECT characters_ID, name FROM characters where whichfamily = '$famID' && deathdate = '' && isfemale = '0' && $currentturn > borndate + 128",$db);
$rowcheck = mysql_num_rows($result);
//echo $rowcheck;
$suitablemembers = array();
$i = '0';
while ($row = mysql_fetch_assoc($result)){
    foreach ($row as $col => $val){
        if ($col == 'characters_ID') {
         $suitablemembers['idnum'][$i] = $val;
         }
         if ($col == 'name') {
            $suitablemembers['name'][$i] = $val; 
         }

         //$_SESSION['currentplayerCP'] = $val;
         //$_SESSION['currentplayerMaxCP'] = $val;
    }
    $i++;

   }
   print_r($suitablemembers);
$('#displaysomedata').click(function() {
            //alert("Button clicked.");
            // somehow do a while or loop to display data from that array


        });  // end displaysomedata click function
打印输出如下所示:

数组([idnum]=>Array([0]=>3[1]=>10)[name]=>Array([0]=>Orland[1]=>Raguet))

更多代码如下:

$result = mysql_query("SELECT characters_ID, name FROM characters where whichfamily = '$famID' && deathdate = '' && isfemale = '0' && $currentturn > borndate + 128",$db);
$rowcheck = mysql_num_rows($result);
//echo $rowcheck;
$suitablemembers = array();
$i = '0';
while ($row = mysql_fetch_assoc($result)){
    foreach ($row as $col => $val){
        if ($col == 'characters_ID') {
         $suitablemembers['idnum'][$i] = $val;
         }
         if ($col == 'name') {
            $suitablemembers['name'][$i] = $val; 
         }

         //$_SESSION['currentplayerCP'] = $val;
         //$_SESSION['currentplayerMaxCP'] = $val;
    }
    $i++;

   }
   print_r($suitablemembers);
$('#displaysomedata').click(function() {
            //alert("Button clicked.");
            // somehow do a while or loop to display data from that array


        });  // end displaysomedata click function
我曾经尝试过JSON封装,但我不确定这是否是一个可行的解决方案


如何将php数组中的数据移动到jquery变量中(在循环中?

将数据结果编码为JSON,并在jquery脚本中使用
ajax
getJSON
检索数据

编辑:

我想你需要一个例子如何做到这一点

// At the last of your php script, uncomment this
// print_r($suitablemembers);
// and give a json instead
header('Content-Type: application/json');
echo json_encode($suitablemembers);
然后从html或js文件(或内联js)执行ajax或使用GetJSON速记

$('#displaysomedata').click(function() {
    //alert("Button clicked.");
    // Use PHP to output the JSON-encoded array into a javascript variable

    $.getJSON('path/to/above/script.php', function(data) {
       var items = [];

       $.each(data, function(key, val) {
       items.push(key + ':' + val);
       });
       alert(items.join(''));

    });
});

将数据结果编码为JSON,并在jquery脚本中使用
ajax
getJSON
检索它

编辑:

我想你需要一个例子如何做到这一点

// At the last of your php script, uncomment this
// print_r($suitablemembers);
// and give a json instead
header('Content-Type: application/json');
echo json_encode($suitablemembers);
然后从html或js文件(或内联js)执行ajax或使用GetJSON速记

$('#displaysomedata').click(function() {
    //alert("Button clicked.");
    // Use PHP to output the JSON-encoded array into a javascript variable

    $.getJSON('path/to/above/script.php', function(data) {
       var items = [];

       $.each(data, function(key, val) {
       items.push(key + ':' + val);
       });
       alert(items.join(''));

    });
});

JSON正是您需要的解决方案。您的PHP脚本将数组编码为JSON,您可以在页面上对其进行回显

这假设您不需要从PHP动态检索数据,而只需要在页面加载时生成一次数据。如果需要动态检索它,则需要在jQuery中使用
$.ajax()

$('#displaysomedata').click(function() {
        //alert("Button clicked.");
        // Use PHP to output the JSON-encoded array into a javascript variable

        var jsonobj = <?php echo json_encode($suitablemembers); ?>;

        // Now you can do whatever you need to with `jsonobj`
 });
$('displaysomedata')。单击(函数(){
//警报(“点击按钮”);
//使用PHP将JSON编码的数组输出到javascript变量中
var jsonobj=;
//现在,您可以使用'jsonobj'执行任何需要的操作`
});

注意:为了正常工作,上面的Javascript必须内联到PHP生成的同一页面上。如果它是通过
包含的,PHP无法修改它

JSON正是您需要的解决方案。您的PHP脚本将数组编码为JSON,您可以在页面上对其进行回显

这假设您不需要从PHP动态检索数据,而只需要在页面加载时生成一次数据。如果需要动态检索它,则需要在jQuery中使用
$.ajax()

$('#displaysomedata').click(function() {
        //alert("Button clicked.");
        // Use PHP to output the JSON-encoded array into a javascript variable

        var jsonobj = <?php echo json_encode($suitablemembers); ?>;

        // Now you can do whatever you need to with `jsonobj`
 });
$('displaysomedata')。单击(函数(){
//警报(“点击按钮”);
//使用PHP将JSON编码的数组输出到javascript变量中
var jsonobj=;
//现在,您可以使用'jsonobj'执行任何需要的操作`
});

注意:为了正常工作,上面的Javascript必须内联到PHP生成的同一页面上。如果它是通过
包含的,PHP无法修改它

看看PHP函数,该页面上的第一个示例是如何将数组编码为JSON。如toopay所述,您可以使用getJSON从JQuery端加载它。

看看PHP函数,该页面上的第一个示例是如何将数组编码为JSON。您可以使用getJSON从JQuery端加载它,正如toopay所指出的那样。

//main.js

var system_array=[];
function get_array(){
    $.getJSON("/json/get_array.php", function(json) {
          system_array=json;
     });
}
//get_array.php

<?php
    $result_array=array(1,2,3,4,5);
    header('Content-Type: application/json; charset=utf-8');
    echo json_encode($result_array);
    exit();
?>

//main.js

var system_array=[];
function get_array(){
    $.getJSON("/json/get_array.php", function(json) {
          system_array=json;
     });
}
//get_array.php

<?php
    $result_array=array(1,2,3,4,5);
    header('Content-Type: application/json; charset=utf-8');
    echo json_encode($result_array);
    exit();
?>


正如您所说,页面加载只需一次。我试图包含上面显示的代码,但它不起作用,我在下面添加了警报(jsonobj),但什么也没有得到。我必须再次解码吗?查看您的页面源代码,确保PHP在那里输出了一些内容。注意,您的Javascript必须内联在PHP呈现的同一页面上——如果包含在脚本src中,这将不起作用。如果JSON字符串实际上在源代码中,
console.dir(jsonobj)在Firebug或Chrome/Safari开发者工具或IE8/9开发者工具控制台(F12)中,很抱歉这个新手问题。当您说js必须内联在同一页面上,而不是在脚本src标记中时。。。我有点迷路了。如果不在src标记中,如何呈现JS$(function(){$('#testbutton')。单击(function(){alert(“testbutton clicked”);var jsonobj=alert(jsonobj);})@jeremy如果您的Javascript直接位于
标记中,您就没事了(这是内联的)。如果你在脚本标签中调用一个远程js文件,比如
,那么PHP将无法工作。正如你所说,只需在页面加载时调用一次。我试图包含上面显示的代码,但它不起作用,我在下面添加了警报(jsonobj),但什么也没有得到。我必须再次解码吗?查看您的页面源代码,确保PHP在那里输出了一些内容。注意,您的Javascript必须内联在PHP呈现的同一页面上——如果包含在脚本src中,这将不起作用。如果JSON字符串实际上在源代码中,
console.dir(jsonobj)在Firebug或Chrome/Safari开发者工具或IE8/9开发者工具控制台(F12)中,很抱歉这个新手问题。当您说js必须内联在同一页面上,而不是在脚本src标记中时。。。我有点迷路了。如果不在src标记中,如何呈现JS$(function(){$('#testbutton')。单击(function(){alert(“testbutton clicked”);var jsonobj=alert(jsonobj);})@jeremy如果您的Javascript直接位于
标记中,您就没事了(这是内联的)。如果调用脚本标记中的远程js文件,如
,则PHP将无法工作。