2015-03-07 2 views
0

Я хочу опубликовать форму с двумя полями на php-странице, используя $ _POST ['json']; объект будет json-типом. Вы можете мне помочь?Как отправить форму на страницу php?

<div id="result"></div> 
<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="button" value="Submit!" name="submit" id="submit"/> 
</form> 

ответ

2

Если вы пытаетесь отправить 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); 
    } 
Смежные вопросы