dongluoqiu0255 2016-10-04 14:33
浏览 47
已采纳

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

I am a beginner with symfony and got a question.

I am trying to do an email validation from thenewbostom.

In the guide he says that you need to put the php file in the .post function. With normal PHP I could've done this easily but with the different map structure, I don't know.

Can someone give me a right direction?

My twig (only the email input with span)

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

My js (that I linked in the twig file and the post function)

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());
});

And for the last my php file

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

1条回答 默认 最新

  • duanmu6752 2016-10-04 15:33
    关注

    From JQuery API documentation: jQuery.post( url [, data ] [, success ] [, dataType ] ), so basically you want to write

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

    Then you need to implement the route

    /**
     * @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)...
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?