.append()不附加PHP代码

时间:2014-08-20 18:24:32

标签: javascript php jquery html ajax

您好我是PHP的初学者,我正在尝试使用Jquery include在html <section>中添加一个简单的.append() php代码。

PHP代码

<?php
    $cupSize = "
    <br><br>
    <table width=\"100%\" border=\"0\">
        <tr>
        <td>
            <div class=\"mainBox2\" id=\"largeCup\">
                <div class=\"mainSubBox2L\"> 
                    Large
                </div>
            </div>
        </td>

        <td>
            <div class=\"mainBox2\" id=\"smallCup\">
                <div class=\"mainSubBox2S\">
                    Small
                </div>
            </div>
        </td>

        <td>
            <div class=\"mainBox2\" id=\"mixCup\">
                <div class=\"mainSubBox2MP\">
                    Mix
                </div>
            </div>
        </td>
        </tr>
    </table>";

    echo $cupSize;  
?>

Jquery代码

$('#misc').click(function(){
    $('.second').append("<?php include 'cupCustomizer.php'; ?> ");
});

然而它不起作用,没有任何反应。我在StackOverflow上搜索过,但有一些Ajax的答案,但我没有服务器端编程的经验。我只擅长CSS,HTML和Jquery。所以请帮助我:))

谢谢

4 个答案:

答案 0 :(得分:2)

您无法通过javascript将PHP代码添加到浏览器中显示的HTML,因为您的Web浏览器中不会运行PHP解释器来处理它。 PHP Include不是您想要的。

您可能希望从HTML中对http://yourhost.com/restofurl/cupCustomizer.php进行AJAX调用,而是附加该PHP脚本的HTML输出。

这样的东西
$('#misc').click(function()
{
  $.get('cupCustomizer.php', function(data) 
  {
    $('.second').append(data);
  }
  );
});

可能会起到你的作用。

答案 1 :(得分:1)

您正在尝试将原始HTML文本转储到javascript环境中。

例如..假设你的php include()以及其他什么不起作用,你将会生成一个看起来像

的页面
$('.second').append("<br><br> blah blah " quote here " quote there etc....");

并完全杀死你的JS代码块,但语法错误。

你不能将任意html文本转储到JS上下文中,并期望它能够正常工作。

BARE MININUM ,你需要json_encode你的文字,所以它至少在语法上有效javascript:

.append(<?php echo json_encode($cupSize); ?>)

会产生

.append("<br><br> blah blah \" quote here \" quote there ....");

请注意内部报价是如何转义的。

答案 2 :(得分:0)

您需要进行ajax调用以获取不在同一文档中的php脚本的输出。类似的东西:

$('#misc').click(function(){
        $.ajax({
            url : "cupCustomizer.php",
            type: "POST",
            success: function(data, textStatus, jqXHR) {
                $(".second").append(data);
            },
            error: function (jqXHR, textStatus, errorThrown){
                console.log('OOPS! Something went wrong');
            }
        });
});

答案 3 :(得分:0)

你在.js文件中有JQuery脚本吗?如果是,您的PHP-Interpreter不会解释它。您可以通过在.htaccess文件中添加以下内容来更改此内容:

<FilesMatch "\.(js)$">
AddHandler application/x-httpd-php .js
</FilesMatch>