通行证在HTML表单值中显示Javascript变量

时间:2015-11-20 16:20:11

标签: javascript php html function

我正在尝试将Javascript变量传递给HTML文本框,并希望该变量在传递给onclick函数之前可见。

首先,我将php变量(从另一个脚本传递)编码为javascript变量:

var id = <?php echo json_encode($id);?>

然后我尝试尝试使文本框的值等于javascript id变量:

<input type="text" id="getfromweb" value="">
<input type="button" value="Get From Web..." onclick="getFromWeb(document.getElementById('getfromweb').value = id)"><br>

但是我没有看到id var显示为文本框的值?

我认为解决方法是将id作为函数中的值传递:

onclick="getFromWeb(document.getElementById('getfromweb').value = id)

但是这不起作用,即变量没有出现在文本框中。

getfromweb函数从这样开始:

function getFromWeb(webid)
    {
        var webid=document.getElementById('getfromweb').value;
        var http_request=false;
        http_request = new XMLHttpRequest();
        http_request.open('GET', 'getfromweb.php?id='+webid, false);

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

这里有很多奇怪的东西。

  1. 通过声明另一个具有相同名称的变量来覆盖webid中的getFromWeb(webid)参数时会丢失var webid=document.getElementById('getfromweb').value;
  2. onclick="getFromWeb(document.getElementById('getfromweb').value = id)"只有在您点击按钮时才会调用此代码。 onclick的意思是什么。 document.getElementById('getfromweb').value = id直到您单击它才会运行,即使您在单击它之前表示要显示它。在点击之前,它不会对页面加载做任何事情。
  3. 但是为什么不首先使用php在html值中回显呢?像这样:

    <input type="text" id="getfromweb" value="<?php echo $id ?>" />
    

    然后你可以简化这个:

     <input type="button" value="Get From Web..." onclick="getFromWeb();" />
    

    并删除此参数:

    function getFromWeb()
    {
        var webid=document.getElementById('getfromweb').value;
        ...
     }