标签: form-data

为什么使用 new FormData() 时指定 [0]?

我刚刚花了几分钟调试why new FormData($("#ImageEditorForm"));不起作用。在转向 Stack Overflow 后,我在另一个线程中找到了一个建议来代替new FormData($("#ImageEditorForm")[0]);

我做出了改变,并没有预料到会发生什么。相反,代码现在可以完美地按预期运行。以前,没有任何内容被提交到服务器。现在,表单数据和文件将按预期显示。

我的问题是为什么需要“[0]”?DOM 中只有一个具有该 ID 的元素。按 ID 选择肯定只返回一个元素吗?这里发生了什么?

javascript jquery form-data

1
推荐指数
1
解决办法
679
查看次数

使用图像数组创建 FormData 并在 React-Native 中使用 rn-fetch-blob 上传

我正在使用rn-fetch-blob库将一些图片上传到服务器。但我遇到了不同类型的错误,例如 Content-Type 上没有边界或 FormData 结构本身的错误,例如“NSMutableDictionary 类型无法转换为 NSString”,我感到非常沮丧。

我得到了一个像这样的图像数组:

var images = [
     {name 'pic1', data: RNFetchBlob.wrap(imagePathHere), type: 'image/jpeg'},
     {name 'pic2', data: RNFetchBlob.wrap(imagePathHere), type: 'image/jpeg'},
     {name 'pic3', data: RNFetchBlob.wrap(imagePathHere), type: 'image/jpeg'},
];
Run Code Online (Sandbox Code Playgroud)

然后我创建 FormData,如下所示:

  const formData = new FormData();
  formData.append('id', userId)   // <-- numeric type
  formData.append('pictures', images);
Run Code Online (Sandbox Code Playgroud)

我正在执行来自 RNFetchBlob 的发布请求,'Content-Type': 'multipart/form-data'并将 formData 直接传递给它。

关于出了什么问题有什么想法吗?我在某处读到 FormData 只允许字符串或 blob,我应该从数组创建 Blob 吗?我怎样才能做到这一点?

提前致谢。

form-data react-native react-native-fetch-blob

1
推荐指数
1
解决办法
4355
查看次数

使用axios上传和patch方法不起作用

我使用 Laravel 5.8 和 Vue.js 2,这是我的 .vue 文件:

let data = new FormData();                           
data.append('name', this.name);
data.append('image',this.image)
data.append('_method', 'PATCH');
axios.patch('/url/' + this.id, data)                        
                     .then(({data}) => {                

                    })
                     .catch((error) => {

                    }); 
Run Code Online (Sandbox Code Playgroud)

路线

let data = new FormData();                           
data.append('name', this.name);
data.append('image',this.image)
data.append('_method', 'PATCH');
axios.patch('/url/' + this.id, data)                        
                     .then(({data}) => {                

                    })
                     .catch((error) => {

                    }); 
Run Code Online (Sandbox Code Playgroud)

错误

违反完整性约束:1048 列“名称”不能为空。

但是当我将方法更改为 POST 时,在我的 vue 文件和 web.php 中它都有效,发生了什么?我需要使用两种方法:发布新数据和修补更新。我能做些什么?

javascript form-data laravel vue.js axios

1
推荐指数
1
解决办法
2154
查看次数

表单数据未填写到 React 中

我有一个非常基本的项目,在这个项目中,我有一个简单的表单。当我提交此表单时,我将数据放入带有追加方法的表单数据中,之后当我在控制台中记录表单数据时,它是一个空对象,我很想知道为什么会发生这种情况,这是我的代码

import styles from '../styles/Home.module.css'
import {useState} from "react";

export default function Home() {
    const [inputs, setInputs] = useState({
        name: '',
        mobile: ''
    });
    const changeHandler = (e) => {
        setInputs(prev => {
            const cloneState = {...prev};
            cloneState[e.target.name] = e.target.value;
            return cloneState;
        });
    }

    const clickHandler = (e) => {
        e.preventDefault();
        const formData = new FormData();
        formData.append('name', inputs.name);
        formData.append('mobile', inputs.mobile);
        console.log(formData, 'FD');
    }
    return (
        <div className={styles.container}>
            <form>
                <input type="text" onChange={changeHandler} name='name'/>
                <input type="text" onChange={changeHandler} name='mobile'/>
                <button type='submit' onClick={clickHandler}>Submit</button>
            </form> …
Run Code Online (Sandbox Code Playgroud)

javascript forms form-data reactjs next.js

1
推荐指数
1
解决办法
7880
查看次数

在基本的Shopify联系表单上出现错误后保留表单数据

我已添加了Shopify文档中描述的基本联系表单.

我的代码:

{% form 'contact' %}

{% if form.posted_successfully? %}
<div class="successForm feedback">
  <p>Thanks for contacting us. We'll get back to you as soon as possible.</p>
</div>
{% endif %}

{% if form.errors %}
<div class="errorForm feedback">
  <p>Sorry, we were unable to submit your inquiry because it contained {{ form.errors | size | pluralize: 'an error', 'a few errors' }}.<br/>Please correct the following and submit again:</p>
  {% for field in form.errors %}
  <p><strong>The {{ field | capitalize | …
Run Code Online (Sandbox Code Playgroud)

form-data shopify contact-form form-fields

0
推荐指数
1
解决办法
1588
查看次数

使用JavaScript和XMLHTTPRequest将FormData发布到php

目前,我有两个文件,index.htm和accessdata.php。这是我在index.htm中拥有的:

<html>
<head>
<script>
function postData() {
  var xmlhttp=new XMLHttpRequest();
  var url = "accessdata.php";
  var checkBoxes_formData = new FormData(document.getElementById("checkBoxes"));

  xmlhttp.open("POST",url,true);
  xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  xmlhttp.send(checkBoxes_formData);

  xmlhttp.onreadystatechange=function(){
    if (xmlhttp.readyState==4 && xmlhttp.status==200){
      document.getElementById("result").innerHTML=xmlhttp.responseText;
    }
  }
}
</script>

</head>

<body>
<button type="button" onclick="postData()">POST</button>

<form id=checkBoxes>
<table>
    <tr><input type="checkbox" name="opt1" value="blue" checked> Blue</td>
    <tr><input type="checkbox" name="opt2" value="yellow"> Yellow</td> 
</table>
</form>

<p id="result"></p>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这就是我在accessdata.php中拥有的内容:

<?php

$opt1=$_POST['opt1'];
echo $opt1;

echo "bla";
?>
Run Code Online (Sandbox Code Playgroud)

从今起

<p id="result"></p>
Run Code Online (Sandbox Code Playgroud)

显示“ bla”,但不显示“ blue”或“ yellow”。

我究竟做错了什么?

正确的HTML代码如下!

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"> …
Run Code Online (Sandbox Code Playgroud)

html javascript php xmlhttprequest form-data

0
推荐指数
1
解决办法
3893
查看次数