2016-07-16 11 views
0

コールAJAX経由jqueryのからPHPは、任意の応答は.IはdataTypeを変更し、問題がある考えjson代わりhtml .I'mを入れて持っている場合は、そのAJAX呼び出しのために決してありませんPHPコードをトリガー、それは$_POST['retriveForm']は決して値を運ぶようだ。パスPHPへのjQueryの値、およびJSONを返す

PHP:

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); 
} 

とjQuery:

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

コードことが重要であるかもしれない場合は、すべて同じページです。

+0

'!empty($ _ POST [" retriveForm "])' – guradio

+0

'var_dump($ _ POST)'は何を表示できますか? – Barmar

+0

@guradio同じですが、 '$ _POST [" retriveForm "]'の問題は常に空です。 – Ini

答えて

0

AJAXコードは同じスクリプト内にあるので、この場合は通常のHTMLを出力しないようにしてください。あなたのPHPコードは、HTMLが出力される前にスクリプトの冒頭にあるべきです。 JSONをエコーし​​た後にスクリプトを終了する必要があります。そうしないとJSONがHTMLと混在し、jQueryはレスポンスを解析できなくなります。

また、ループ内に正しく$data_jsonを追加していません。変数を押すのではなく、毎回変数を上書きしています。それは配列ではなく、単一のオブジェクトなので

<?php 
// code here to set up database connection 
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); 
    exit(); 
} 
?> 
<html> 
<head> 
... 

次にsuccess機能では、あなたは、インデックスにresponseの要素が必要になります。

関連する問題