Если вы пытаетесь отправить JSON через почту, вы должны скрипта с помощью JS или JQuery
броска JSON.stringify(values)
в вашу функцию. Вы можете быстро получить данные формы с помощью var values = $("form").serialize();
.
Я думаю, что вы действительно спрашиваете о возврате ajax или php post json ... Этот пример должен охватывать оба сценария с некоторой настройкой.
index.php
<?
$name = isset($_POST["name"]) ? $_POST["name"] : "";
$number = isset($_POST["number"]) ? $_POST["number"] : "";
$fromAjax = isset($_POST["ajax"]) ? $_POST["ajax"] : NULL;
if($name != "" || $number != ""){
$results = array(
'name' => $name,
'number' => $number
);
$resultFromPHP = json_encode($results);
}
?>
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="resultfromphp" style="border: 1px solid;width:300px;height:25px; ">
<? echo isset($resultFromPHP) ? $resultFromPHP : ""; //if result is set, echo it, else empty?>
</div>
<br>
<div id="resultfromajax" style="border: 1px solid;width:300px;height:25px;">
</div>
<hr>
<form name="form" id="form" method="post" >
Name: <input type="text" name="name" id="name"/><br/>
Number: <input type="text" name="number" id="number"/><br/>
<input type="submit" value="PHP Submit!" name="php_submit" id="php_submit"/>
<input type="button" value="AJAX Submit!" name="ajax_submit" id="ajax_submit"/>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="submit.js"></script>
</body>
</html>
для метода PHP, вы помещаете код PHP в самом документе, и представить себе. вы можете использовать, чтобы сохранить код отдельно. Используя html submit, вы не можете преобразовать данные формы перед отправкой. То, что я написал наверху, должно охватывать это. то, что будет здесь, - это данные, отправленные post, и конвертированные в json.
Метод ajax почти такой же, однако, поскольку вы используете jquery с этой частью, вы можете сначала запустить json, отправить и получить json.
submit.js
$().ready(function(){
$("#ajax_submit").on("click", function(){
sendSomeAjax();
});
});
var sendSomeAjax = function(){
var sendData = $("form").serialize();
$.ajax({
url: "submit.php",
type: "post",
data: sendData,
success: function(data){
$("#resultfromajax").html(data);
},
error: function(data){
$("#resultfromajax").html("There was an error.");
}
});
};
submit.php
<?php
$name = isset($_POST["name"]) ? $_POST["name"] : "";
$number = isset($_POST["number"]) ? $_POST["number"] : "";
$fromAjax = isset($_POST["ajax"]) ? $_POST["ajax"] : NULL;
if($name != "" || $number != ""){
$results = array(
'name' => $name,
'number' => $number
);
echo json_encode($results);
}