发送JSON或数组以提交POST(jQuery - > PHP)

时间:2017-07-20 09:09:54

标签: javascript php jquery json forms

早上好。 我痴迷于这件事: 我正在做一个表单(通过提交按钮发送信息到其他页面,发布),动态用户可以通过按钮添加一些其他表单组。 好的,这很简单。 但是用户正在做一些名为" DPT" (工作的东西)我的数据库中有一个表,并且还有一个"功能" (要做的事)表。 DPT可以有一个或多个功能。

Function              
---------
id int(4) AI
title VARCHAR(64) NOT NULL
description VARCHAR(256)
dpt int(4) --> FK
      | 1..*
      |
      V 1
DPT
-----
id
name
(...)

所以我有一个<div>我用jQuery充气,用于在其中制作面板和表单。 为什么我这样做?因为如果DPT可以有一个或多个函数,我必须存储我正在创建的当前函数的ID。 然后我有一个用于添加更多功能的按钮,但是我必须存储该功能的ID以及它的标题和描述。

所以使用jQuery我可以在&#34;添加功能&#34;的按钮之前动态添加。新表格...... 我的想法是创建一个JSON并通过PHP发送它,但不知道我必须在哪里发送信息或在哪里返回...

我告诉你我做这件事的重要代码:

<div id="initialFunction" class="panel panel-default panel-body">
<?php 
 $nextID = mysqli_fetch_assoc(mysqli_query($con,"SELECT MAX(id_funcion) as siguiente_id from funcion"))['siguiente_id'];
?>
 <button class="button btn-danger" type="button">
  <span class="fa fa-minus">
  </span>
 </button>
</div>

<script>

var nextId = <?php echo $nextID?> 
var arrayToPass = {}
$(function(){
    $("#initialFunction").html('<div class="form-group">'+
            '<label>Función a desarrollar <sup style="color:red">*</sup></label>'+
            '<input class="form-control" name="funcion" type="text" placeholder="Función a desarrollar" maxlength="200" required>'+
        '</div>'+
        '<div class="form-group">'+
            '<label>Tarea principal en esta función <sup style="color:red">*</sup></label>'+
            '<textarea class="form-control" name="tarea" placeholder="Enumere las funciones de su puesto de trabajo comenzando por las más representativas, así como las tareas necesarias para el cumplimiento de las mismas" rows="3" required></textarea>'+
        '</div>');
});

$("#bttn-add").click(function(){
    $("#bttn-add-function").before(
        '<div class="form-group">'+
            '<label>Función a desarrollar <sup style="color:red">*</sup></label>'+
            '<input class="form-control" name="funcion" type="text" placeholder="Función a desarrollar" maxlength="200" required>'+
        '</div>'+
        '<div class="form-group">'+
            '<label>Tarea principal en esta función <sup style="color:red">*</sup></label>'+
            '<textarea class="form-control" name="tarea" placeholder="Enumere las funciones de su puesto de trabajo comenzando por las más representativas, así como las tareas necesarias para el cumplimiento de las mismas" rows="3" required></textarea>'+
        '</div>');
        nextId++;

});

当我点击提交按钮并通过POST传递时,我可以返回数组/ json吗? 类似的东西:

$("#guardar_dpt").click(function(){
    return json_object
} )

我告诉你photo我在做什么。 整个表格:enter image description here

1 个答案:

答案 0 :(得分:0)

有可能。而且简单。这是一个例子:

HTML:

<script src="https://unpkg.com/jquery"></script>
<form id="myForm" method="post">
  <input type="text" name="first"><br>
  <input type="text" name="last"><br>
  <input type="submit" value="Send">
</form>

<p id="output"></p>

JS:

function parseAnswer (data) {
  var content

  content += 'Name: ' + data.first + '<br>'
  content += 'Surname: ' + data.last

  $('#output').text(Name)
}

$('#myForm').on( "submit", function (evt) {
  var data = $(this).serialize()

  evt.preventDefault()
  $.post('any.php', data, parseAnswer)
})

PHP:

<?php
  header("Content-type: application/json");

  $first = $_POST['first'];
  $last = $_POST['last'];

  $arr = ['first' => $first, 'last' => $last];

  echo json_encode($arr);
?>