gpt4 book ai didi

php - 如何用php生成html以在ajax调用后返回

转载 作者:行者123 更新时间:2023-12-01 08:21:52 25 4
gpt4 key购买 nike

我使用 ajax 调用在页面上生成所有 html,并且从不刷新页面。我的设置类似于

HTML:<a id="user_click_here">test link</a>

JQUERY:

$("#user_click_here").live("click", function(event){
console.log("click on test link");
ajax_function("action=return_some_html");
});

ajax 函数调用 php,我在其中创建 html。我遇到的困难是用 php 生成 html。我尝试使用这个:

PHP:

    $html = <<<HTML

<div class="box">
<h2>
<a href="#" id="remove">$text[0]</a>
</h2>
<div class="block">

<div style="float:left; width: 35%; margin:5px; padding: 1em; background: white;">

HTML;

$html .= '<p>Username: <a id="username">' . $_SESSION['username'] . '</a></p>';


$html .= <<<HTML


<div style="float:left; width: 30%; margin:5px;">
<p>
Level:<br />
Weapon:<br />
Power:<br />
Bullets:<br />
</p>
</div>
<div style="float:right; width: 60%; margin:5px;">
<p>

HTML;

$html .= '<b id="level">empty</b><br/>';


$html .= <<<HTML <---ERROR HERE unexpected '<<'



Weapon blabla<br />
2 - 5<br />
3/6<br />
</p>
</div>
</div>

我倾向于尝试并失败,直到它适用于此 <<<WHATEVER (不记得它叫什么)。就像现在我得到一个 unexpected '<<'由于某种原因出现错误。

我必须使用这种方法吗:

$html = '<div class="box">
<h2>
<a href="#" id="remove">' . $text[0] . '</a>
</h2>
<div class="block">

<div style="float:left; width: 35%; margin:5px; padding: 1em; background: white;">';

在 php 中保存 html 并将其发送回 jquery 的最佳方法是什么?

我现在发送这样的html:

PHP:

$data = array("html" => $html);
return json_encode( $data );

当然,我希望它尽可能地压缩,最好没有任何像这样的东西:\n\t\t\t\t占用空间。

编辑:

好的。我认为每个人都没有注意到这是一个 ajax 调用,并且我必须返回一个 json 元素。我不能做常见的<?php php code ?> html code <?php more php ?> some html

最佳答案

看起来你的最后一个 HEREDOC(这就是 <<< 语法的名称)未关闭,缺少它

HTML;

不要忘记最后的HTML;同一行前后不能有任何空格。

但是,您的做法完全错误。 HEREDOC 语法的优点在于您可以将所有变量嵌入其中,而不需要任何连接。只需在一个 HEREDOC 中创建整个内容并将其回显给 jQuery。如果您只想在 AJAX 调用接收到它时将其用作 HTML,则无需将其设置为 JSON。

上面的所有代码都属于 $html = <<<HTML 内堵塞。包含所有复杂变量,例如 $_SESSION['whatever']{} {$_SESSION['whatever']} .

$html = <<<HTML

<div class="box">
<h2>
<a href="#" id="remove">{$text[0]}</a>
</h2>
<div class="block">

<div style="float:left; width: 35%; margin:5px; padding: 1em; background: white;">
<p>Username: <a id="username"> {$_SESSION['username']}</a></p>
<div style="float:left; width: 30%; margin:5px;">
<p>
Level:<br />
Weapon:<br />
Power:<br />
Bullets:<br />
</p>
</div>
<div style="float:right; width: 60%; margin:5px;">
<p>
<b id="level">empty</b><br/>
<!--etc -->
<!--etc -->
HTML;

// Now just echo it back to the AJAX caller as HTML
echo $html;
exit();

关于php - 如何用php生成html以在ajax调用后返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6883048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com