将变量从JavaScript AJAX表单传递给PHP函数

时间:2017-06-09 12:03:49

标签: javascript php ajax

在我的网站上,我有一个登录表单,它将一些数据(例如电子邮件地址)提交给PHP函数并启动正在运行的函数,从而创建用户。

我想从表格所在的页面传递一些额外的信息

这是我想通过表单发送的数据:

<?php
    $variable = "Your Name Here"
?>

这是表格本身:

<form action='http://dev3.benefacto.org/wp-admin/admin-ajax.php' method='GET'>
<b>Work E-Mail: </b><input type='text' name='email' id='email' placeholder='Enter Your Work Email' />
<input type='text' style='display: none' name='action' id='action' value='logged_in_check2' />
<input type='text' name='variable' id='variable' value=$variable />
&nbsp;&nbsp;<input type='submit' value='Next'  class='cta' />

为了论证,我们可以说PHP函数是

function simple_name_return()
{
echo 'Hello'
$variable = $_GET["variable"];
echo $variable;
}

add_action("wp_ajax_nopriv_simple_name_return", "simple_name_return");
add_action("wp_ajax_simple_name_return", "simple_name_return");

我认为这可能会有所帮助,但我对JavaScript完全不熟悉,所以有点难过:Pass Javascript variable to PHP via ajax

任何想法都非常感激。

2 个答案:

答案 0 :(得分:0)

我回答了一个非常相似的问题here

基本上你需要通过POST / GET传递变量,检查结果并做出响应。要查看电子邮件,您可以执行以下操作:

emailcheck.php

<?php

// Assume success by default
$result = true;

if (!filter_var($_GET['email'], FILTER_VALID_EMAIL)) {
    $result = false;
}

// Other checks, such as domain here, set $result to false if check fails

// Throw error if email isn't valid so it can be picked up by $.ajax
if (!$result) {
    http_response_code(500);
}

JS(需要jquery

function isValidFormEmail()
{
    // Perform ajax call to emailcheck.php
    $.ajax({
        url: '/emailcheck.php?email=' + $('#email').val(), 
        error: function() {
            $('#custom-email-error').show();
        },
        success: function(data) {
            // Submit form
            $('form').submit();
        }
    });

    // Prevent form from submitting on click
    return false;
}

这应该适用于您的HTML,因为它当前正在提供操作URL移动到下一个操作。

答案 1 :(得分:-1)

由于您要将表单提交到页面,因此您需要先在admin-ajax.php中接收变量,然后将其传递给函数。