【问题标题】:How to send data from 2 different page to a php via an ajax call together?如何通过 ajax 调用一起将来自 2 个不同页面的数据发送到 php?
【发布时间】:2016-07-14 12:39:18
【问题描述】:

所以我需要用户填写表格,然后我想像这样将该数据传递到另一个页面

站点 1

<form action="site2.php" method="post">
Name: <input type="text" name="name">
Email: <input type="text" name="email">
<input type="submit">
</form>

Site2 将从 site1 读取名称和电子邮件并将其包含在 ajax 调用中

Site2 Javascript

function addMarker(location, map) {
        // Add the marker at the clicked location
        var marker = new google.maps.Marker({
          position: location,          
          map: map
        });

        $.ajax({
          url: 'insertToDatabase.php',
          type: 'POST',
          data: { lat: location.lat(),
                  long : location.lng(),
                  name : $_POST['name'], // something like this
                  email: $_POST['email'] // something like this
                }
        });
      }

有没有办法为 Ajax 调用做这样的事情? 谢谢!

【问题讨论】:

    标签: javascript php jquery ajax


    【解决方案1】:

    当然。在 site2 中,只需捕获 POST 变量,然后让 PHP 在您需要的任何地方打印它们的值

    site2.php

    <?php
    //capture the POST vars
    $name = $_POST['name'];
    $email = $_POST['email'];
    ?>
    ...HTML & JS code GOES HERE....
    

    然后在页面下方,您的 ajax 函数所在的位置,您可以重新进入 PHP 模式以输出值:

    $.ajax({
        url: 'insertToDatabase.php',
        type: 'POST',
        data: { lat: location.lat(),
        long : location.lng(),
        name : '<?= $name ?>',
        email: '<?= $email ?>'
        ...
    

    【讨论】:

    • 好的,我会尽快尝试的 :) 然而,同时出现了另一个有趣的想法。是否可以在 addMarker() 函数中触发弹出表单并将提交的表单数据从弹出窗口直接传递给 ajax?这样,我什至不需要site1.php
    • 是的;您可以使用prompt() 函数要求用户输入,捕获结果并将其包含在您的data 参数中。看看:developer.mozilla.org/en-US/docs/Web/API/Window/prompt
    • 是的,我在看prompt()。然而,不幸的是它只能提供一种输入。我至少需要 2 个输入 :(
    • 然后您需要弄清楚如何使用 Javascript 编写模态表单,或者使用 prompt() 两次,一次捕获一个输入。顺便说一句,我在回答中在&lt;?= $name ?&gt;&lt;?= $email ?&gt; 周围添加了引号。没有它们就行不通。
    猜你喜欢
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    • 1970-01-01
    • 2013-08-31
    • 2016-09-04
    • 1970-01-01
    相关资源
    最近更新 更多