我坚持使用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并在那里处理它?
感谢您的任何想法和帮助!
答案 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/)等工具,或者创建一个适当的基于客户端 - 服务器流的上传系统(不应该是这样的简单的任务)。