【问题标题】:Is there a way to send html id attribute to a function?有没有办法将 html id 属性发送到函数?
【发布时间】:2013-03-15 16:20:53
【问题描述】:

我的代码如下。我想将 id=content 发送给函数 mr。然后将结果写入传递的id=result。虽然只是针对这个html文件,但是我想让这个函数可以用于其他html页面,并且想在另一个util.js文件中添加这个函数。

Add Item:
        <input type="text" name="name" id="content">
        <br>
        <button onclick="javascript:mr('POST',content,result,'post.php');"     
type="button"      

id="btn1">
            Submit
        </button>
<br>
        <button onclick="javascript:mr('GET',content,result,'get.php');" type="button"    

id="btn2" >
            List Jobs
        </button>
        <div id="result"></div>

函数mr是这样的,用于ajax post和get操作:

function mr(type,content,result,URL) {

            var hr = new XMLHttpRequest();


            //var content = document.getElementById("content").value;
            var vars = "content=" +content;

            if (type == 'GET')
                URL = URL + '?' + vars;


            hr.onreadystatechange = function() {
                if (hr.readyState == 4 && hr.status == 200) {
                    var return_data = hr.responseText;
                    document.getElementById("result").innerHTML = return_data;
                }

            }

            hr.open(type, URL, true);


            hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

            switch(type) {
                case 'GET':
                    hr.send();
                    break;
                case 'POST':
                     hr.send(vars);
                    break;
            }

            document.getElementById("result").innerHTML = "Processing...";

        }
    </script>

post.php

<?php echo "POST\n"; if(isset($_POST)) print_r($_POST); ?>

get.php

<?php echo "GET\n"; if(isset($_GET)) print_r($_GET); ?>

当我点击提交时,我得到以下输出。

POST Array ( [content] => [object HTMLInputElement] )

然后点击列表按钮输出:

GET Array ( [content] => [object HTMLInputElement] )

【问题讨论】:

  • 您要发送什么? ID还是内容?你似乎在暗示两者。或者我看错了。
  • “onclick”属性值中不需要“javascript:”。
  • @thesystem 我要发送价值。

标签: php javascript ajax xmlhttprequest


【解决方案1】:

因为这行:

var vars = "content=" +content;

您发送的是实际的 &lt;input&gt; 元素,而不是它的值或 ID。您在正确的轨道上,上面有注释行。

发送值,而不是输入对象:

var content = document.getElementById("content");
var vars = "content=" + content.value;

发送 id:

var content = document.getElementById("content");
var vars = "content=" + content.id;

【讨论】:

  • 我不明白你的意思。我必须包含 var vars = "content=" +content;将内容值发送到 php 文件。
  • 是的,但是上面的行注释掉了 content 指的是实际的输入对象,而不是它的值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-08
  • 1970-01-01
  • 2016-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多