2010-11-27 3 views
0

Мой файл jphp.php содержит следующее:отправить массивы данных из PHP в JavaScript

<?php 

$send_array = array(); 
$edge_number = array('a','b'); 

$vertex_a = array('c','d'); 

$send_array[0] = $edge_number; 
$send_array[1] = $vertex_a; 

echo json_encode($send_array); 

?> 

и мой Javascript Файл содержит следующее:

<html> 
<head> 
<script language="javascript"> 
function postRequest(strURL) 
{ 
    var xmlHttp; 
    if(window.XMLHttpRequest) 
    { // For Mozilla, Safari, ... 
     var xmlHttp = new XMLHttpRequest(); 
    } 
    else if(window.ActiveXObject) 
    { // For Internet Explorer 
     var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlHttp.open('GET', 'jphp.php', true); 
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
    xmlHttp.onreadystatechange = function() 
    { 
     if (xmlHttp.readyState == 4) 
     { 
    var obj = jQuery.parseJSON('{"name":"John"}'); 
alert(obj.name === "John");  updatepage(xmlHttp.responseText); 
     } 
    } 
    xmlHttp.send('jphp.php'); 
} 

function updatepage(str) 
{ 
    document.write(str); 
} 



var vertex_a = new Array(); 
var edge_number = new Array(); 
var rec_array = new Array(); 
rec_array = {"edge_number", "vertex_a"}; 
//rec_array[1] = names; 
for(var i=0;i<1;i++) 
{ 
    document.write(rec_array[i]); 
} 
$.ajax({ 
    url: 'jphp.php' 
    type: 'post', // post or get method 
    data: {}, // if you need to pass post/get parameterds you can encode them here in JSON format 
    dataType: 'json', // the data type you want returned... we will use json 
    success: function(responseData) { 
    alert('edge_number='+responseData[0].join(',')); 
    alert('vertex_a='+responseData[1].join(',')); 
    } 
}); 

У меня есть закодировать данные данных в php .... теперь я хочу отправить эти два массива данных в javascript ..... я не знаю правильных команд для использования. Я запутался в поиске.

Пожалуйста, помогите.

ответ

0

Простой специфический exmple с помощью JQuery:

Код JavaScript Страница:

$.ajax({ 
    url: 'url/of/page.php' 
    type: 'post', // post or get method 
    data: {}, // if you need to pass post/get parameterds you can encode them here in JSON format 
    dataType: 'json', // the data type you want returned... we will use json 
    success: function(responseData) { 
    var edge_number = responseData.edge_number; 
    var vertex_a= responseData.vertex_a; 
    var rec_array = responseData; 
    } 
}); 

На вашем языке:

0

JavaScript вызывает PHP через AJAX, а затем, когда он получает ответ, он использует JSON.parse(), чтобы превратить строку JSON в объекты JavaScript.

+0

может у вас, пожалуйста, сообщите мне конкретные команды тоже .... я пробовал это в течение 2-3 часов .... пожалуйста .... специально для части javascript! – 2010-11-27 08:26:18

+0

http://api.jquery.com/category/ajax/ – 2010-11-27 08:27:54

+0

можно сказать мне еще одну вещь: как я могу построить 2 массива внутри одного массива .... элементы отдельных массивов должны быть получены через php , – 2010-11-27 08:31:14

0

На стороне клиента я бы рекомендовал использовать jQuery и его функцию $.parseJSON().
Вы можете позвонить AJAX, используя $.get(), $.post() или $.ajax(). См. Документацию по их использованию.

На стороне сервера закодируйте массив с помощью PHP json_encode().
Затем установите правильный заголовок HTTP (!!!)

header('Content-type: application/json');

и эхо JSON закодированные данные =]