【问题标题】:how to send form element values directly to php page using javascript如何使用javascript将表单元素值直接发送到php页面
【发布时间】:2019-08-31 02:09:41
【问题描述】:

我在这里尝试的是,当您单击提交按钮时,我正在调用一个 javascript 函数,该函数获取所有表单元素值并将其传递到 php 页面,而不将它们存储在变量中,然后发送这些变量。

我的表单示例:

<form enctype="multipart/form-data" method="post" name="fileinfo">
  <label>Your email address:</label>
  <input type="email" autocomplete="on" autofocus name="userid" placeholder="email" required size="32" maxlength="64" />
  <br />
  <label>Custom file label:</label>
  <input type="text" name="filelabel" size="12" maxlength="32" />
  <br />
  <label>File to stash:</label>
  <input type="text" name="email" required />
  <input type="button" onsubmit="sendvalues()" value="Stash the file!" />
</form>

现在在 javascript 上,我想发送用户 ID 和电子邮件字段以直接转到 php 页面,而无需先将它们检索到变量中,然后通过 ajax 发送该变量。

function sendValues() {
  var formElement = document.querySelector("form");
  console.log(formElement);
  var formData = new FormData(formElement);
  var request = new XMLHttpRequest();
  request.open("POST", "<?php echo VIEW_HOST_PATH;?>process_data.php");
  formData.append("process_type", 'process_data');
  request.send(formData); //want to send all form userid, email directly to php page
  request.onreadystatechange = (e) => {
    console.log(request.responseText)
  }
}

这可以直接将 user_id 和 email 值发送到 php 页面吗?因此,例如,包含电子邮件和用户信息的表单元素以及任何其他表单元素,它们都通过 ajax 发送到 php 页面,但最重要的是不将此元素值存储在 javascript 变量中。 谢谢

【问题讨论】:

    标签: javascript php jquery


    【解决方案1】:

    在您的表单中,您应该指定属性“action”。该操作将是您的 php 文件,它将处理您的提交操作。您也可以添加到此表单 id 选择器。

    <form id="file-info" enctype="multipart/form-data" action="/process_data.php" method="post" name="fileinfo">
    

    现在在你的函数 sendValues() 中你可以像这样提交表单:

    function sendValues() {
    document.getElementById("file-info").submit();
    }
    

    或者如果您将输入按钮类型设置为提交,您甚至不需要此功能:

     <input type="submit" name="submit" /> 
    

    然后在您的 php 文件中,您可以使用如下变量:

    if (isset( $_POST['submit'])) 
    {
     $userId = $_POST['userid'];
     $email = $_POST['email']; 
    }
    

    【讨论】:

    • 我不想将函数提交到任何 php 页面。我想做的就是仅使用 javascript 和 ajax 提交表单,但发送表单数据而不是在 javascript 端提取它们,例如存储到变量中,而是将所有元素值直接发送到 php 页面。
    【解决方案2】:

    那就试试这个

    HTML 代码

    <form enctype="multipart/form-data" method="post" class='submit_form' name="fileinfo">
    <label>Your user name:</label>
    <input type="text" name="name" id='name' placeholder="name" required /><br />
    <label>Your email address:</label>
    <input type="email" autocomplete="on" autofocus name="userid" id='userid' placeholder="email" required size="32" maxlength="64" /><br />
    <label>Custom file label:</label>
    <input type="text" name="filelabel" size="12" maxlength="32" /><br />
    <label>File to stash:</label>
    <input type="text" name="email" required />
    <input type="button" value="Stash the file!" class='submit' />
    

    JQUERY CODE 在同一页面上(包括 jquery)

    $('body').on('click', '.submit', function(e) {
    e.preventDefault();
        $.ajax({
            'url': 'mpay.php',
            'type': 'POST',
            'data': $('.submit_form').serialize(),
            success: function(response) {
               console.log(response);
            }
        });
    
    });
    

    PHP CODE文件名为mpay.php

    $arr = [
     'name' => $_POST['name'],
     'email' => $_POST['email'],
    ];
    echo "<pre>;
    print_r($arr);
    echo "</pre>";
    

    希望这会有所帮助。

    【讨论】:

    • 您好,您如何在 javscript 代码中存储电子邮件:和名称:但我想做的不是存储在此变量中,而是希望通过 ajax 直接将提交的值发送到 PHP 页面。例如 formelements - 它包含所有元素和 thr 值。然后我在 php 页面上发送这个表单元素。
    猜你喜欢
    • 2019-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多