将数组从jQuery传递给PHP(实际上在提交后转到页面)
这看起来很简单,但我正在做的是在jQuery中创建一个数组并通过ajax将其发送到php并将记录插入到数据库中。 但我现在要做的是创建完全相同的数组但不是ajax,我想去php页面查看收到的内容。
我该怎么做呢?
我正在使用这个jQuery:
$('#preview').live('click',function(){ var postData = {}; $('#items tr').not(':first').each(function(index, value) { var keyPrefix = 'data[' + index + ']'; postData[keyPrefix + '[index]'] = index; postData[keyPrefix + '[supp_short_code]'] = $(this).closest('tr').find('.supp_short_code').text(); postData[keyPrefix + '[project_ref]'] = $(this).closest('tr').find('.project_ref').text(); postData[keyPrefix + '[om_part_no]'] = $(this).closest('tr').find('.om_part_no').text(); postData[keyPrefix + '[description]'] = $(this).closest('tr').find('.description').text(); postData[keyPrefix + '[quantity_input]'] = $(this).closest('tr').find('.quantity_input').val(); postData[keyPrefix + '[cost_of_items]'] = $(this).closest('tr').find('.cost_of_items').text(); postData[keyPrefix + '[cost_total_td]'] = $(this).closest('tr').find('.cost_total_td').text(); }); $.ajax ({ type: "POST", url: "preview.php", dataType: "json", data: postData, cache: false, success: function() { } }); });
这个PHP:
if (isset($_POST['data']) && is_array($_POST['data'])) { foreach ($_POST['data'] as $row => $data) { echo $data['index']; echo $data['project_ref']; echo $data['supp_short_code']; echo $data['om_part_no']; echo $data['description']; echo $data['quantity_input']; echo $data['cost_of_items']; echo $data['cost_total_td']; } }
根据dnagirl的说法,你可以做的是使用jQuery生成POST表单并提交它。
$('#preview').live('click',function(){ var cForm = $('
在创建字符串中的地方而不是内联中使用attr()的原因是为了避免转义问题,并且在我看来它看起来更干净。
您可以将收到的数据存储在会话中:
if (isset($_POST['data']) && is_array($_POST['data'])) { session_start(); $_SESSION['data'] = $_POST['data']; }
然后链接到另一个PHP页面,该页面从会话中检索数据并显示它:
session_start(); if (isset($_SESSION['data']) && is_array($_SESSION['data'])) { foreach ($_SESSION['data'] as $row => $data) { echo $data['index']; echo $data['project_ref']; echo $data['supp_short_code']; echo $data['om_part_no']; echo $data['description']; echo $data['quantity_input']; echo $data['cost_of_items']; echo $data['cost_total_td']; } }
为什么不使用JSON
PHP JSON
所以你当前正在使用jQuery创建一个POST字符串,然后使用ajax将其发送到php脚本。 现在你真的想直接POST到PHP。 那是对的吗?
如果我有这个权利,有两个选择:
- 实际上是从用户填写的表单中POST
- 具有由
标签和提交按钮组成的骨架forms。 当用户点击提交按钮时以及提交操作完成之前,使用jQuery创建和填充隐藏的表单字段。