将数组从字段发送到javascript,然后发送到php

时间:2011-01-23 22:32:28

标签: php javascript jquery mysql ajax

我坚持使用ajax功能即时创建。这是交易,我有一个表格,我通过ajax发送到PHP。在我的表单中,我有另一种形式,即上传图像并将URL存储在新创建的inputfield数组中。我的问题是我不知道如何从ajax / jquery

将这些新字段发送到php

这里有一些代码

上传的文件效果很好,我从每个上传的文件中获取一个新字段到我现有的表单中。

<input name="img[]" type="hidden" value="mynewfile1.jpg">
<input name="img[]" type="hidden" value="mynewfile2.jpg">
etc...

我宣布其他形式的对象,然后将它们发送到我的php文件,如下

声明

var event_title = $('input[name=event_title]');
var event_tags = $('input[name=event_tags]');

//这是我的数组我也试图发送到php但是如何?

var event_img = $('input[name=img[]]');

发送 这是通过POST方法通过常规ajax完成的。

var data = 'event_title=' + event_title.val() etc...

我的php

$event_title =  $_POST['event_title'];
$event_url =  $_POST['event_url'];
etc..

这里我从ajax获取内容然后使用变量发布并执行其他操作。

我正在获取像这样的图像数组

if ($_POST['event_img']) {

  $array=$_POST['event_img'];
  foreach ( $array as $value ) {

etc...

我的猜测是问题在于从ajax发送,我如何获取数组字段在javascript中声明它并将其发送到php并在那里处理它?

感谢您的任何想法和帮助!

3 个答案:

答案 0 :(得分:1)

我会使用.serialize()序列化整个表单并使用ajax

发送它
var data = $('form').serialize();

然后,如果您使用ajax发送数据,则所有当前表单数据都将可用,就像您实际提交表单一样。

答案 1 :(得分:1)

使用json:
通过JSON.stringify函数将您的数组编码为json,在服务器端,我认为json_decode可以解决问题。

答案 2 :(得分:0)

您不能使用AJAX通过文件输入表单字段异步上传文件,这意味着为了通过 $ FILES 数组将文件提供给PHP,您需要实际提交表单(手动或使用 .submit()方法)。

如果您确实需要使用您的AJAX请求上传文件,则需要使用上传(http://www.uploadify.com/)等工具,或者创建一个适当的基于客户端 - 服务器流的上传系统(不应该是这样的简单的任务)。