您好我是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。所以请帮助我:))
谢谢
答案 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>