将php文件中的javascript变量传递给html

时间:2014-01-15 06:49:26

标签: javascript php html

我只是想知道一件事我到目前为止都无法解决。

我有一个php文件,代码如下。

doInit.php

<?
    include 'connect.php';
    session_start();
    if(isset($_SESSION['detailid'])){
        $detailid = $_SESSION['detailid'];
        $resutlinit=mysql_query("select Nama,Kelas,Ranking,Level,Exp,Sekolah from MsDetail where DetailID='$detailid'");

        if(mysql_num_rows($resutlinit)!='0'){ 
            $row = mysql_fetch_array($resutlinit);
            $nama = $row['Nama'];
            $kelas = $row['Kelas'];
            $ranking = $row['Ranking'];
            $level = $row['Level'];
            $exps = $row['Exp'];
            $sekolah = $row['Sekolah'];
        }else echo("Nothing here, try to more detail on your code");
    }else {header("location:index.html");}

?>
<script type="text/javascript">
    var nama = "<?= $nama ?>";
    var kelas = "<?= $kelas ?>";
    var ranking = "<?= $ranking ?>";
    var level = "<?= $level ?>";
    var exps = "<?= $exps ?>";
    var sekolah = "<?= $sekolah ?>";
    //document.writeln(nama);
    //document.writeln(kelas);
    //document.writeln(ranking);
    //document.writeln(level);
    //document.writeln(exps);
    //document.writeln(sekolah);
</script>

我想在我的内部div上写javascript文件。

这是我在div HTML编辑器中写的。

<script type="text/javascript">
    document.writeln(nama);
</script>

这不起作用。

我试图在PHP文件中添加一些src,比如

<script type="text/javascript" src="target.html"></script>

但它没有运气。

我尝试将src添加到目标html中,如

<script type="text/javascript" src="doInit.php"></script>

这也不适合我。

有任何建议如何解决这个问题?感谢您的关注:)

很抱歉在2个答案到来之后进行编辑。

2 个答案:

答案 0 :(得分:2)

首先,设置文本框值document.writeln不是您需要的。你应该这样做:

<input id="myInput" type="text"/>
<script type="text/javascript">
document.getElementById('myInput').value = myInputValue;
</script>

此外,您必须确保所有需要的JS以适当的顺序加载。

注意:我明白了,你没有使用任何PHP框架。这样,我可能建议在此处优化代码的一种可能方法是使用标准PHP函数 json_encode。但是你应该将所有的JS变量复合到一个对象中:

PHP:

<?php
// Database work
if(mysql_num_rows($resutlinit)!='0'){ 
    $row = mysql_fetch_array($resutlinit);
}
// ...
?>
<html>
<head>
<script type="text/javascript">
var data = <?php echo json_encode($row); ?>;
</script>
</head>
<body>
    <form>
        <input id="myInput" type="text"/>
    </form>
    <!-- Here your form is already loaded -->

    <!-- Perform any JS activity on page at end of body -->
    <script type="text/javascript">
        document.getElementById('myInput').value = myInputValue; // As it goes in database row
    </script>
</body>
</html>

UPD :如果您只需要在页面加载时指定input值,则可以非常简单的方式执行此操作:

<input id="namaInput" type="text" value="<?php echo $row['Nama']"/>

答案 1 :(得分:0)

document.writeline()用提供给它的参数替换整个页面的内容。

为了预览变量值,请使用console.log(),或者在更极端的用例中,使用alert()。

至于在HTML文档中使用这些值,您可以使用:

<input type="text" id="myNamaInputField" />

在你的javascript代码中:

var nama = "<?= $nama ?>";
document.getElementById("myNamaInputField").value = nama;

将使用javascript变量的值填充输入字段。

注意将您的javascript代码放在文档中的HTML元素之后,或者将其延迟执行,直到DOM准备好使用。

编辑:要将javascript文本添加到页面,请使用变量text创建div,p或span元素,并将其附加到DOM。

在您的javascript代码中:

var nama = "<?= $nama ?>";
var myNamaDiv = document.createElement('div');
myNamaDiv.innerHTML = nama;
document.body.appendChild(myNamaDiv);