Javascript 从JS向控制器中的函数发送数据,并从函数中获取结果

Javascript 从JS向控制器中的函数发送数据,并从函数中获取结果,javascript,php,jquery,symfony,Javascript,Php,Jquery,Symfony,请我需要帮助我从昨天起就陷入了这个困境,问题是我有一个号码输入我使用jquery自动完成帮助我选择用户的订阅号码。 有了这个号码,我想得到一个用户的全名,并显示在树枝上。 一旦我的输入被更改,我将调用JS函数getInfoOfInput(),我使用的JS函数如下: function getInfoOfInput() { var tutoreSelectionne = document.getElementById("numAdherent"); var t

请我需要帮助我从昨天起就陷入了这个困境,问题是我有一个号码输入我使用jquery自动完成帮助我选择用户的订阅号码。 有了这个号码,我想得到一个用户的全名,并显示在树枝上。 一旦我的输入被更改,我将调用JS函数getInfoOfInput(),我使用的JS函数如下:

function getInfoOfInput()
    {
        var tutoreSelectionne = document.getElementById("numAdherent");
        var tutore = tutoreSelectionne.value;
        //alert(tutoreSelectionne.value);
        recupName(tutore);

    }
    function recupName(tutoreSelectionne) {
        var DATA = {tutoreSelectionne: tutoreSelectionne};
        var request = $.ajax({
            type: "POST",
            url: "{{ path('paces_statistique_default_getnometprenomtutore') }}",
            data: DATA,
            success: function(data){
                $('#name').html(data);
            }
        });
        return false;

    }
这是我的控制器中的功能:

  /**
 * get fullName
 * @Secure(roles="ROLE_ADMIN")
 * @Route("/recupFullName/")
 * @param Request $request La requête ajax qui envoie le numAd
 * @return Response $fullnam
 */
public function getNomEtPrenomTutore($request){
    $em = $this->getDoctrine()->getManager();
    $tutoRepo = $em->getRepository(Tutore::class);
    if ($request->isXmlHttpRequest()) {
        $numTutore = $request->request->get('tutoreSelectionne');
        $tutore = $tutoRepo->findOneBy(['username' => $numTutore]);
        $nom = $tutore->getNom();
        $prenom = $tutore->getPrenom();
        $fullName = "$nom $prenom";
        return $this->render("PACESStatistiqueBundle:Default:index.html.twig", array('fullName'=>$fullName));
    }
}
注:“用户名”是用户的子分类号^^^我知道它的名称不好用

我在细枝上的输入:

<div class="ui-autocomplete-input">
<input type="number" id="numAdherent" value="" onchange="getInfoOfInput();"  onkeyup="this.onchange();"  oninput="this.onchange();" onautocomplete="this.onchange();">
</div>
这就是我在JS中使用“Inspect Element”时遇到的错误


提前感谢您为我提供的任何帮助:)

内部服务器错误通常意味着您的控制器操作有问题

$tutore = $tutoRepo->findOneBy(['username' => $numTutore]);
这条线可能是问题所在。对我来说,
username
听起来不像一个数字。这句话真的对吗

编辑: 检查错误消息后,以下是解决方案: 改变


并确保您实际导入了
请求
类。

是的,我知道这听起来很奇怪,但用户名是用户订阅号。在这种情况下,我建议使用浏览器调试工具找出错误消息。为此,请执行以下操作(至少在chrome中,FF应类似)。按F12打开调试工具。切换到网络选项卡。然后触发ajax调用。您应该会在左侧的列表中看到一个新项目。检查该项的
预览
选项卡以查看呈现为html的服务器响应(也称为错误消息)。控制器“EnhancedProxy 62DB1E3F_856e7bba52f64f2dfd7076a0fac10a57e3836e6f_CG__\uPages\StatistiqueBundle\Controller\DefaultController::getNomEtPrenomTutore()”要求为“$request”参数提供一个值(因为没有默认值,或者因为这个参数后面有一个非可选参数)。好的,它正在工作,但是我仍然有一个小问题,我需要修改输入中的更改调用。每次修改输入都会调用该函数
jquery-1.11.3.min.js:5 POST http://localhost:8000/recupFullName/    500(Internal Server Error)
send @ jquery-1.11.3.min.js:5
ajax @ jquery-1.11.3.min.js:5
recupName @ vueStatistique:231
getInfoOfInput @ vueStatistique:226
onchange @ vueStatistique:276
oninput @ vueStatistique:276
$tutore = $tutoRepo->findOneBy(['username' => $numTutore]);
public function getNomEtPrenomTutore($request){
public function getNomEtPrenomTutore(Request $request){