【问题标题】:Add line break and bold text in response php在响应php中添加换行符和粗体文本
【发布时间】:2016-01-08 18:56:49
【问题描述】:

我正在使用 Symfony2 返回一个 ajax 响应,我需要将消息的内容分成两行并将一些文本以粗体显示。我正在使用的函数是:

 public function showuserAction()
   {
    $nid=$this->get('request')->request->get('nid');
    $em = $this->getDoctrine()->getEntityManager();
    $user = $em->getRepository('Bundle:Users')->findUser($nid);

    if($user){
        return new JsonResponse(array('message' => 'This NID belongs to the user: '.$user->getName()), 200);
    }
}

ajax 调用:

$.ajax({
  type: 'POST',
  url: Routing.generate('showuser'),
  data: {dni:dni},
  dataType: 'json',
  success: function(response) {

    alert(response.message);

  }
 })

我希望得到以下结果:

此 NID 属于用户:

粗体格式的用户名

【问题讨论】:

    标签: php symfony


    【解决方案1】:

    我建议您将消息和用户名作为返回的 JSON 中的单独字段发送,如下所示:

    return new JsonResponse(
        array(
            'message' => 'This NID belongs to the user: ',
            'username' => $user->getName()
        ),
        200
    );
    

    然后在加载 JSON 的前端处理它们的格式。

    API,即您的 JSON 响应,应该只与数据有关,而不是数据应该是什么样子,在您编码时将这两者分开将有助于使您的代码更清晰和更易于维护。

    【讨论】:

    • 谢谢,我没想到。
    【解决方案2】:
    if($user){
            return new JsonResponse(array('message' => 'This NID belongs to the user: <b>'.$name.'<b/>');, 200);
        }
    

    【讨论】:

    • 嗨@SantoshPatel,我已经尝试过了,并添加了文本标签,但没有换行。

    • 标签放在你想要的地方。
    • return new JsonResponse(array('message' =&gt; 'This NID belongs to the user: &lt;br/&gt; '.$user-&gt;getName()), 200); 不起作用
    【解决方案3】:

    旧的纯 html 标签:

    return new JsonResponse(
        array(
            'message' => 'This NID belongs to the user<br />: <b>' . $user->getName() . '</b>',
        ),
        200
    );
    

    我看到你alert 收到消息。无法自定义警报窗口中的消息。可以尝试加\n表示换行,但是加粗不行

    return new JsonResponse(
        array(
            'message' => 'This NID belongs to the user:' . "\n" . $user->getName(),
        ),
        200
    );
    

    【讨论】:

    • 嗨@u_mulder,我已经尝试过了,并添加了文本标签,但没有换行。
    • 换行符是&lt;br /&gt;,因为我们这里有html。你用它吗?同时展示你如何输出接收到的数据。
    • 警报窗口是标准的浏览器窗口。你不能自定义它。您所能做的就是添加“\n”作为换行符。
    • 据此。如何在一个类似的窗口中添加该消息,您可以在其中选择两个选项?
    • 阅读模态窗口/弹出窗口并创建它们。有很多模板和样式。
    【解决方案4】:

    如果你想在 JS 中管理格式,你可以使用jolyonruss 解决方案,或者只使用纯 HTML:

    更改 AJAX 调用的数据类型:dataType: 'html',
    返回一个简单的Response

    return new Response('This NID belongs to the user:<br><strong>'.$user->getName().'<strong/>');
    
    // or even better
    return $this->render('Bundle:Users:showUserPartial.html.twig', array('user' => $user));
    

    【讨论】:

      猜你喜欢
      • 2019-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多