在jquery中附加php

时间:2010-07-08 16:53:51

标签: php jquery append

我正在尝试使用jquery动态创建div来显示错误消息。我能够使用append()来轻松创建HTML,但我需要调用php变量才能显示内容。如果我只是尝试像我通常那样添加php开启和关闭标签,那么追加方法的行为并不像预期的那样,并从行的中间输出一个看似随机的部分。 我怎样才能克服这个问题?

这是我拥有的jquery代码:

$(document).ready(function() {
    var errors_php = "<?php  echo validation_errors('<li>','</li>'); ?>";
    $('#wrapper').append("<div id='errors'><ul>"+errors_php+"</ul></div>");
    $('#errors').slideDown('slow');
});

注意:validation_errors()函数是一个codeigniter方法。顺便说一下,如果我从append()中删除errors_php变量,它会按预期工作,显示一个空div。

编辑:

生成的代码是:

<div id="errors"><ul>',''); ?&gt;</ul></div>

3 个答案:

答案 0 :(得分:3)

确保正确转义PHP的输出。如果错误代码中有引号(“),则会导致问题。请尝试使用validation_errors包裹addslashes

$(document).ready(function() {
    var errors_php = "<?php echo addslashes(validation_errors('<li>','</li>')); ?>";
    $('#wrapper').append("<div id='errors'><ul>"+errors_php+"</ul></div>");
    $('#errors').slideDown('slow');
});

答案 1 :(得分:2)

根据你的评论:

  

我只是抬起那个问题而已   正是我想要做的。   不幸的是,我不明白   他们如何解决它的答案。   我之前从未使用过json数据。   我应该把这段代码放在哪里?

JSON data只是JavaScript Object Notation,因此如果您将JavaScript变量设置为JSON值,它将基本上重新创建一个首先序列化为JSON的对象的副本。

var errors_php = "<?php  echo validation_errors('<li>','</li>'); ?>";

应该是:

var errors_php = <?php echo json_encode(validation_errors('<li>','</li>')); ?>;

答案 2 :(得分:0)

您不能在javascript文件中运行PHP代码,但可以在PHP文件中运行html&JS代码。

JavaScript在用户的浏览器中运行。

PHP在服务器上运行。它会读取您的.php文件,运行找到的PHP,将HTML发送到浏览器,然后退出。

没有可以让您从Javascript代码中运行PHP代码的“远距离怪异动作”。

要在PHP文件中运行html&JS代码,请执行以下操作:

$('.addctr').append(
'<div class="row">' +
'<div class="form-group col-sm-5">' +
'<label class="control-label">Parameter</label>' +
'<select class="form-control" name="asset_search">' +
'<?php foreach ($dd["asset_search"] as $asset_search) { ?>' +
'<option <?= set_select("asset_search", $asset_search["text"]) ?>><?= $asset_search["value"] ?></option>' +
'<?php } ?>' +
'</select>');