使用symfony的.post函数中的PHP文件

时间:2016-10-04 14:33:56

标签: javascript php jquery symfony

我是symfony的初学者并且有一个问题。

我正在尝试从thenewbostom进行电子邮件验证。

在指南中他说你需要将php文件放在.post函数中。使用普通的PHP我可以很容易地做到这一点,但是我知道不同的地图结构。

有人可以给我一个正确的方向吗?

我的树枝(只有带跨度的电子邮件输入)

<input id="autocomplete" type="text" name="email" class="autocomplete validate">
<span id="email_feedback"></span>

我的js(我在twig文件和post函数中链接)

function validate_email (email) {
    $.post(/*php file is supoosed to be here*/,{ email:email}, function (data) {
        $('#email_feedback').text(data);
    });
}

$('#autocomplete').focusin(function () {
    if ($('#autocomplete').val() === '') {
        $('#email_feedback').text('Type een geldige email');
    } else {
        validate_email($('#autocomplete').val());
    }
}).blur(function () {
    $('#email_feedback').text('');
}).keyup(function () {
    validate_email($('#autocomplete').val());
});

最后一个我的php文件

 /**
 * @Route("/")
 */
public function indexAction()
{
    if (isset($_POST['email'])) {
        $email = $_POST['email'];
        echo $email;
    }
    return $this->render('BontekoeCinemaBundle:Default:index.html.twig');
}

1 个答案:

答案 0 :(得分:1)

来自JQuery API文档:jQuery.post( url [, data ] [, success ] [, dataType ] ),所以基本上你想写

function validate_email (email) {
    $.post('http://myhost.com/myRoute1', { email:email}, function(data) {
        $('#email_feedback').text(data);
    });
}

然后你需要实现路线

/**
 * @Route("/")
 */
public function indexAction()
{
    if (isset($_POST['email'])) {
        $email = $_POST['email'];
        echo $email;
    }
    return $this->render('BontekoeCinemaBundle:Default:index.html.twig');
}

/**
 * @Route("/myRoute1")
 */
public function autoCompleteEmailAction()
{
    // get parameter(s)...
    // search in database...
    // return result(s)...
}