2016-10-11 13 views
-1

My POSTメソッドはWebページに表示されませんが、GETメソッドは、global.jsでメソッドを作成していません。 GETメソッドにはPOSTが含まれていますか? POSTにはGETを表示しないでください。それ、どうやったら出来るの?私はPOSTが働いていることを知っています。ネットワーク(コンソールのあるブラウザ)には、POSTメソッドがあり、プレビューは$_POST$_SESSIONを出力します。 ではなく、POSTをページに表示するにはどうすればよいですか。POSTメソッドは表示されませんが、GETメソッドは

Button.php

<!doctype html> 
<html> 
    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">    </script> 
    <script src ="global.js"></script> 
    <title>Button POST</title> 
    </head> 
    <body> 
     <button id ="postbutton" onclick="location.href='storage.php'">GO</button><br> 
    </body> 
</html> 

storage.php

<?php 
print_r($_POST); 
if(isset($_POST['json'])){ 
    $_SESSION['object'] = $_POST["json"]; 
    print_r($_SESSION); 
    echo 'True'; 
}else { 
    echo 'False'; 
} 

global.js

var oject = [{name:'John', age:17},{name:'James', age:22}]; 
var json = JSON.stringify(oject); 


$(document).ready(function(){ 
    $('#postbutton').click(function(){ 
    $('#output').html('sending..'); 
     var jobject = JSON.stringify(oject); 
     console.log(jobject); 
     $.ajax({ 
     method:'post', 
     url:'storage.php', 
     data:{json:oject}, 
     }) 
     .done(function(data){ 
     console.log(data); 
    }); 
    }); 
}); 
+1

よくwindow.locationを設定しています.... Ajaxコールを作成して、その場所を同時に設定することはできません。なぜリダイレクトしていますか? – epascarello

+0

@epascarelloこれは単なる例で、私がやっていることは 'storage.php'以外の他のページにリダイレクトしていることです。違いはないと思っていたようでしたが、それはそうでした。 – CBegin

+0

Ajax呼び出しが完了したらリダイレクトする必要があります。それで、doneメソッドに入れてください。 – epascarello

答えて

1

location.hrefメソッドでonclickを使用しているため、GETメソッドが機能しています。出力を表示できるように、常にGETメソッドでリダイレクトされます。しかし、POST method in ajaxで作業するには、onclickメソッドを削除し、返されたデータをbody要素に追加する必要があります。

<button id ="postbutton" onclick="location.href='storage.php'">GO</button><br>:あなたは同時に$.ajax()を呼び出す起こるボタンでonclickありますなぜ

Button.php

<!doctype html> 
    <html> 
    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">    </script> 
    <script src ="global.js"></script> 
    <title>Button POST</title> 
    </head> 
    <body> 
     <button id ="postbutton">GO</button><br> 
    </body> 
</html> 

global.js

var oject = [{name:'John', age:17},{name:'James', age:22}]; 
var json = JSON.stringify(oject); 


$(document).ready(function(){ 
    $('#postbutton').click(function(){ 
    $('#output').html('sending..'); 
     var jobject = JSON.stringify(oject); 
     console.log(jobject); 
     $.ajax({ 
     method:'post', 
     url:'storage.php', 
     data:{json:oject}, 
     }) 
     .done(function(data){ 
     $("body").append(data); 
    }); 
    }); 
}); 
+0

答えをくれてありがとうございます:Dは今のところうまくいくようですが、他のページにリダイレクトしても値を持っていますか?私がやっていることは 'storage.php'に値を格納し、その値を別のページに使うことです。 – CBegin

0

$.ajax()を使用する場合は、onclickの必要はありません。あなたの条件を満たす場合にのインサイドdone(function(data) {})に電話して、そのユーザーを別の場所にリダイレクトすることができます。

関連する問題