我想将变量从php传递给javascript,因此我创建了这样的代码
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="css/style.css">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.js"></script>
</head>
<body>
<?PHP
echo "<h2><a style=\"font-family: 'Raleway', Arial, sans-serif\" class=\"dummy-media-object\"><p id=\"example2\"><font face='Raleway' size=\"6\">http://examle.com</font></p>";
?>
<div id="article"></div>
<script type="text/javascript">
$(document).ready(function(){
$.ajax({
type: "GET",
url: document.getElementById("example2"),
contentType: "application/json; charset=utf-8",
async: false,
dataType: "json",
success: function (data, textStatus, jqXHR) {
var markup = data.parse.text["*"];
var i = $('<div></div>').html(markup);
// remove links as they will not work
i.find('a').each(function() { $(this).replaceWith($(this).html()); });
// remove any references
i.find('sup').remove();
// remove cite error
i.find('.mw-ext-cite-error').remove();
$('#article').html($(i).find('p'));
},
error: function (errorMessage) {
}
});
});
</script>
<h1>
</h1>
</body>
</html>
在这里,document.getElementById(“example2”)将传递变量,但在这种情况下,这不会发生。我做错了什么?
答案 0 :(得分:1)
它无效的原因是因为您没有id
example2
的DOM元素。您可以通过几种不同的方式发出此元素。
<?php echo "<span id='example2'>$somevalue</span> ?> // accessed by
document.getElementById("example2")
或者您可以直接在javascript
中发出它<script type="text/javascript">
<?php echo "var example2Value = $somevalue ?>
</script>
或者您可以创建一个隐藏的输入来保存您的变量
<?php echo "<input id='example2' type='hidden' value='$somevalue' /> ?> // accessed by
document.getElementById("example2").value
答案 1 :(得分:0)
不需要echo或font标签。您使用jQuery,因此使用.text()方法访问它。
<h2 style="font-family: 'Raleway', Arial, sans-serif">
<a class="dummy-media-object"><p id="example2">http://examle.com</p></a>
<div id="article"></div>
<h1></h1>
使用此脚本 - 请注意$("#example2").text()
我不相信您想要JSON,因为您将结果视为HTML 如果example.com与脚本不是同一台服务器,除非您可以添加CORS,否则由于跨域访问冲突,您将无法执行所需操作
$(function () {
$.get($("#example2").text(),function (data) {
var $i = $('<div></div>').html(data);
// remove links as they will not work
$i.find('a').each(function () {
$(this).replaceWith($(this).html());
});
// remove any references
$i.find('sup').remove();
// remove cite error
$i.find('.mw-ext-cite-error').remove();
$('#article').html($i.find('p'));
});
});
答案 2 :(得分:0)
试试这个: -
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="css/style.css">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.js"></script>
</head>
<body>
<?php echo "<h2><a style=\"font-family: 'Raleway', Arial, sans-serif\" class='dummy-media-object'><font face='Raleway' size='6'><p id='example2'>http://examle.com</p></font></a></h2>";?> // change in formatting
<div id="article"></div>
<script type="text/javascript">
$(document).ready(function(){
$.ajax({
type: "GET",
url: document.getElementById("example2").innerHTML,
contentType: "application/json; charset=utf-8",
async: false,
dataType: "json",
success: function (data, textStatus, jqXHR) {
var markup = data.parse.text["*"];
var i = $('<div></div>').html(markup);
// remove links as they will not work
i.find('a').each(function() { $(this).replaceWith($(this).html()); });
// remove any references
i.find('sup').remove();
// remove cite error
i.find('.mw-ext-cite-error').remove();
$('#article').html($(i).find('p'));
},
error: function (errorMessage) {
}
});
});
</script>
<h1>
</h1>
</body>
</html>
答案 3 :(得分:-1)
要将php变量传递给javascript,您可以这样做:
<?php
$url = "http://examle.com";
?>
<script>
var url = JSON.parse(<?php echo json_encode($url); ?>);
alert(url) //Will alert "http://examle.com"
</script>