如何将变量php传递给javascript?

时间:2015-03-27 10:34:22

标签: javascript php

我想将变量从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”)将传递变量,但在这种情况下,这不会发生。我做错了什么?

4 个答案:

答案 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 如果exam​​ple.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>