2016-07-25 2 views
0

Я застрял на последнем шаге потока данных. Сейчас я работаю над созданием приложения, которое вводит ввод из поля ввода формы HTML, и через Ajax возвращают данные, связанные с тем, что вводит пользователь. Я постараюсь лучше объяснить ниже.Javascript parse JSON данные от from input

Шаг 1:

Пользователь заполняет форму, которая запрашивает URL сайта:

<form action="return.php" class="url-performance" method="post" accept-charset="utf-8"> 
    <input type="text" name="target_url" value="" placeholder="yourwebsite.com" /> 
    <input type="submit" name="submit" value="Submit form" /> 
</form> 
<div class="the-return"></div> 

Шаг 2:

После того, что данные передаются return.php, который на самом деле является Аякс функция в моей основной JS файл:

$(".url-performance").submit(function(){ 
    var data = { 
     "action": "test" 
    }; 
    data = $(this).serialize() + "&" + $.param(data); 
    $.ajax({ 
     type: "POST", 
     dataType: "json", 
     url: "../wp-content/themes/company/response.php", 
     data: data, 
     success: function(
     $(".the-return").html(
      "url: http://api.url" + data["target_url"] 
     ); 
     } 
    }); 
    return false; 
    }); 

Шаг 3:

данных, наконец, проходит через response.php

if (is_ajax()) { 
    if (isset($_POST["action"]) && !empty($_POST["action"])) { //Checks if action value exists 
    $action = $_POST["action"]; 
    switch($action) { //Switch case for value of action 
     case "test": test_function(); break; 
    } 
    } 
} 

//Function to check if the request is an AJAX request 
function is_ajax() { 
    return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'; 
} 

function test_function(){ 
    $return = $_POST; 

    $return["json"] = json_encode($return); 
    echo json_encode($return); 
} 

Проблема Я бегу в том, что мне нужно, чтобы получить данные в формате JSON от http://api.url «+ данные [» target_url "]. Это будет выглядеть так:

{ 
USS001: { 
node_id: "AWSUS1", 
domain: "dyn.com", 
results: [ 
{ 
nameserver: "ns1.p01.dynect.net", 
nameserver_ip: "208.78.70.1", 
ip: "199.180.184.220", 
query_time: 2 
}, 
{ 
nameserver: "ns2.p01.dynect.net", 
nameserver_ip: "204.13.250.1", 
ip: "199.180.184.220", 
query_time: 5 
}, 
{ 
nameserver: "ns3.p01.dynect.net", 
nameserver_ip: "208.78.71.1", 
ip: "199.180.184.220", 
query_time: 2 
}, 
{ 
nameserver: "ns4.p01.dynect.net", 
nameserver_ip: "204.13.251.1", 
ip: "199.180.184.220", 
query_time: 11 
} 
], 
query_time: 2, 
nameserver_used: "ns1.p01.dynect.net", 
nameserver_used_ip: "208.78.70.1", 
test_time: 0.13942 
}, 
EUS001: { 
node_id: "EUS001", 
domain: "dyn.com", 
results: [ 
{ 
nameserver: "ns3.p01.dynect.net", 
nameserver_ip: "208.78.71.1", 
ip: "134.0.76.51", 
query_time: 1 
}, 
{ 
nameserver: "ns2.p01.dynect.net", 
nameserver_ip: "204.13.250.1", 
ip: "134.0.76.51", 
query_time: 8 
}, 
{ 
nameserver: "ns1.p01.dynect.net", 
nameserver_ip: "208.78.70.1", 
ip: "134.0.76.51", 
query_time: 1 
}, 
{ 
nameserver: "ns4.p01.dynect.net", 
nameserver_ip: "204.13.251.1", 
ip: "134.0.76.51", 
query_time: 7 
} 
], 
query_time: 1, 
nameserver_used: "ns3.p01.dynect.net", 
nameserver_used_ip: "208.78.71.1", 
test_time: 0.33029 
}, 
HKS001: { 
node_id: "HKS001", 
domain: "dyn.com", 
results: [ 
{ 
nameserver: "ns3.p01.dynect.net", 
nameserver_ip: "208.78.71.1", 
ip: "103.11.201.138", 
query_time: 6 
}, 
{ 
nameserver: "ns4.p01.dynect.net", 
nameserver_ip: "204.13.251.1", 
ip: "103.11.201.138", 
query_time: 122 
}, 
{ 
nameserver: "ns2.p01.dynect.net", 
nameserver_ip: "204.13.250.1", 
ip: "103.11.201.138", 
query_time: 11 
}, 
{ 
nameserver: "ns1.p01.dynect.net", 
nameserver_ip: "208.78.70.1", 
ip: "103.11.201.138", 
query_time: 6 
} 
], 
query_time: 6, 
nameserver_used: "ns3.p01.dynect.net", 
nameserver_used_ip: "208.78.71.1", 
test_time: 0.68504 
}, 
AUS001: { 
node_id: "AUS001", 
domain: "dyn.com", 
results: [ 
{ 
nameserver: "ns2.p01.dynect.net", 
nameserver_ip: "204.13.250.1", 
ip: "103.11.201.138", 
query_time: 1 
}, 
{ 
nameserver: "ns1.p01.dynect.net", 
nameserver_ip: "208.78.70.1", 
ip: "103.11.201.138", 
query_time: 2 
}, 
{ 
nameserver: "ns3.p01.dynect.net", 
nameserver_ip: "208.78.71.1", 
ip: "103.11.201.138", 
query_time: 1 
}, 
{ 
nameserver: "ns4.p01.dynect.net", 
nameserver_ip: "204.13.251.1", 
ip: "103.11.201.138", 
query_time: 2 
} 
], 
query_time: 1, 
nameserver_used: "ns2.p01.dynect.net", 
nameserver_used_ip: "204.13.250.1", 
test_time: 1.30983 
} 
} 

То, что я застрял на том, чтобы найти JavaScript, эквивалентный file_get_contents (PHP).

+0

Итак, вы хотите, чтобы разобрать JSON? Он должен сам по себе. Попробуйте добавить заголовок типа контента в php до 'json_encode' – Iceman

+0

, почему« PHP »участвует в этом вообще, все это может быть сделано на стороне клиента. – cmorrissey

+0

@cmorrissey Я новичок во всем этом. Что будет примером для всех клиентов? –

ответ

0

Проверьте выход в Ajax успеха с помощью

JSON.stringify(data); 
+0

Он использует' dataType: "json" ', он будет анализировать сам по себе. – Iceman

0

Вы дважды закодировать данные ...

$return["json"] = json_encode($return); 
echo json_encode($return);