Как вы собираете пользовательские данные и отправляете их на сервер? - PullRequest
0 голосов
/ 29 ноября 2018

Возможно, на этот вопрос уже получен ответ, но я не могу найти в Интернете ничего о захвате пользовательского ввода и отправке данных в POST-запрос на сервер.

Я использую Material UI / React / JavaScript для реализацииthis.

<TextField
   id="outlined-email-input"
   label="email name"
   type="email name"
   name="email name"
   autoComplete="email name"
   margin="normal"
   variant="outlined"
   value={this.state.name}
   onChange={this.handleChange('name')}
/>

И у меня есть еще один выпадающий список, который позволяет пользователю выбирать между четырьмя входами.

<FormControl>
                      <InputLabel
                        ref={ref => {
                          this.InputLabelRef = ref;
                        }}
                        htmlFor="outlined-password-selection"
                      >
                        Password
                      </InputLabel>
                      <Select
                        value={this.state.age}
                        onChange={this.handleSubmit}
                        input={
                          <OutlinedInput
                            labelWidth={this.state.labelWidth}
                            name="Password"
                            id="outlined-age-simple"
                          />
                        }
                      >
                        <MenuItem value="BLUE">BLUE</MenuItem>
                        <MenuItem value="PINK">PINK</MenuItem>
                        <MenuItem value="GREEN">GREEN</MenuItem>
                        <MenuItem value="YELLOW">YELLOW</MenuItem>
                      </Select>
                    </FormControl>

По сути, я хочу, чтобы пользователь ввел свою электронную почту и выбралпароль, а затем использовать эту информацию в запросе POST.Чтобы упростить это, я хочу записать пользовательский ввод и просто console.log ().Как мне это сделать?

1 Ответ

0 голосов
/ 30 ноября 2018

Вы можете создать управляемую форму и прикрепить обработчик события onSubmit к форме.После отправки формы в вашем обработчике у вас будут все значения формы, и вы сможете инициировать запрос POST.

Вот полный и работающий пример React :

class Form extends React.Component {
  constructor(props) {
    super(props);
    this.state = {}

    this.handleInputChange = this.handleInputChange.bind(this)
    this.handleSubmit = this.handleSubmit.bind(this)
  }
  
  handleSubmit(event) {
    console.log('Form data:', this.state)
    event.preventDefault()
  }

  // Registering and setting Form fields values and names dynamically
  handleInputChange(event) {
    const target = event.target
    const value = target.type === 'checkbox' ? target.checked : target.value
    const name = target.name

    this.setState({
      [name]: value
    })
  }

  render() {
    return (
      <form onSubmit={this.handleSubmit}>
        <label>
          Email:
          <input
            name="email"
            type="text"
            value={this.state.email}
            onChange={this.handleInputChange} />
        </label>
        <br />
        <label>
          Password:
          <input
            name="password"
            type="password"
            value={this.state.password}
            onChange={this.handleInputChange} />
        </label>
        <br />
        <button type="submit">Submit</button>
      </form>
    )
  }
}

ReactDOM.render(
  <Form />,
  document.getElementById('container')
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="container">
    <!-- This element's contents will be replaced with your component. -->
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...