2016-07-15 2 views
0

Я попытался получить информацию от mysql, чтобы поместить ее в форму и обновить информацию. Я использую ajax-вызов на той же странице, я вызываю ajax, передавая id и php, возвращая всю информацию.Получить данные через JSON и поместить в форму

if(isset($_POST["retriveForm"])) { 
    $data_json =array(); 
    $id = $_POST['retriveForm']; 
    $sql = "SELECT * FROM mytable WHERE Id = $id"; 
    while ($row = mysqli_fetch_array($db->consulta($sql)) { 
     $data_json = array('item1' => $row['item1'],'item2' => $row['item2']) ; 
    } 
    $data_json['item_array'] = call_a_function_return_array();//this works 
    echo json_encode($data_json); 
} 

Ajax вызов показывает, как это

$(document.body).on('click', '.edit' ,function(){ 
       var id = $(this).data('id'); 
       $.ajax({ 
        type: "POST", 
        url: "is_the_same_page.php", 
        data: {retriveForm : id}, 
        success: function(response) { 
        $('#myForm').find('input').eq(1).val(response.item1); 
        } 
       }); 
}); 

Положено .val (response.item1) получить что-нибудь, но если я ставлю ответ на вход принимают все значения

$('#myForm').find('input').eq(1).val(response); 

показывает

{"item1":"item1","item2":"item2","item_array":["item_in_array1","item_in_array2"]} 

Я также пробовал

var obj = jQuery.parseJSON(response); 

ответ

0

Попробуйте установить $.ajax()dataType варианты "json"

"json": Оценивает ответ как JSON и возвращает JavaScript объект.

$(document.body).on("click", ".edit", function() { 
    var id = $(this).data("id"); 
    $.ajax({ 
    type: "POST", 
    url: "is_the_same_page.php", 
    dataType: "json", // set `dataType` to `"json"` 
    data: { 
     retriveForm: id 
    }, 
    success: function(response) { 
     $("#myForm").find("input").eq(1).val(response.item1); 
    } 
    }); 
}); 
+0

это работает, когда проходят ничего PHP, но если попытаться передать данные РНР PHP получить anything.That может быть, что я ставлю все на той же странице (JQuery и PHP) и триггер для php есть 'if (isset ($ _ POST [" retriveForm "]))' – Ini

+0

@Ini Не знаете, что вы имеете в виду? Первоначально появилось, что текст был возвращен с сервера как 'response', а не' javascript' object _ "' $ ('# myForm'). Find ('input'). Eq (1) .val (response); ' показывает '{" item1 ":" item1 "," item2 ":" item2 "," item_array ": [" item_in_array1 "," item_in_array2 "]}' "_. Установка 'dataType' в' 'json' 'должна устанавливать' response' в объект 'javascript' – guest271314

+0

теперь говорить данные из JQuery в php (изначально я ошибаюсь, почему я не использовал var, я сделал обходной путь для тестирования моего ajax). Теперь, если я ставлю $ id = $ _POST ['retriveForm'] $ id принимает любое значение (интересно, возможно ли это для отправки json вместо html. – Ini

Смежные вопросы