你可能会说,我在jQuery方面有点业余。因此,如果有更好的方法可以做我想做的事情,请亲切地分享:)这里发生了什么。当您将<?php echo $header_id; ?>
替换为兼容的给定ID(例如17
)时,脚本中的所有内容都会顺利运行。虽然在此脚本之前定义了$header_id
,但它不能真正输出&#39; 17&#39;。
我在此之前做过研究,没有找到任何帮助。
所以我想主要的问题是,在这个实例中添加一个PHP echo是否真的有效,或者我是否需要另一种方法,或者甚至不是问题......
$(".vote-button-disabled").click(function (evt) {
$(this).hide().prev("input[disabled]").prop("disabled", false).focus();
var quizid = "";
console.log(quizid);
$.ajax({
url: "scripts/vote-post.php",
type: "POST",
data: {
'quizid' : '<?php echo $header_id; ?>',
'upvote' : '1',
},
success: function() {
console.log('yes!');
},
error: function( xhr, status, errorThrown ) {
alert( "Sorry, there was a problem!" );
console.log( "Error: " + errorThrown );
console.log( "Status: " + status );
console.dir( xhr );
},
complete: function( xhr, status ) {
alert( "The request is complete!" );
}
});
});
先谢谢!
答案 0 :(得分:1)
要理解的是,PHP在服务器端执行,JavaScript在客户端执行。
PHP实际上并不知道什么是HTML,什么是JavaScript或什么是纯文本。它只是知道它正在回馈某种内容(也许)。因此,当您回显HTML或JavaScript代码时,就PHP而言,您实际上只是创建一个文本文件。您正在创建一个包含一些文本(恰好是HTML + JS代码)的文件,并将其作为对HTTP请求的响应发送。您的浏览器会在响应中解释生成的文本(恰好是HTML + JS代码)。因此,您可以将PHP视为一种HTML + JS生成器。您可以使用PHP输出HTML + JS(当然还有更多)。
一旦您了解到PHP完全在页面被发回以供浏览器解释HTML和JavaScript时执行,那么使用JavaScript可以做什么和不能做什么的答案变得更加简单。 PHP没有与JS交互,它正在创建JS代码作为文本供浏览器在PHP执行完成后读取。
因此,正如@charlietfl在问题的评论中提到的那样,您应该将quizid
添加到按钮上的data-quizid
属性(假设您使用的是HTML5),然后获取属性对于单击的特定元素,使用var quizid = $(this).data('quizid');
答案 1 :(得分:0)
如果它是外部来自PHP .js
文件,则无法正常工作。
但是,您可以直接在PHP / HTML视图文档中插入JS。
<?php
// Some PHP processing here, whatever you want
?>
<html>
<head>
<script type="text/javascript">
// Your Javascript here, for example:
var some_data = '<?php echo $some_variable; ?>';
// ...
</script>
</head>
<!-- Whatever you want to add -->
</html>