0

私のコードは以下のとおりです。関数 mr に id=content を送信したいです。そして、渡された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); ?>

submit をクリックすると、次の出力が得られました。

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

リストボタンをクリックすると、出力が表示されます。

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

1 に答える 1

0

これは次の行によるものです。

var vars = "content=" +content;

<input>値やIDではなく、実際の要素を送信しています。コメント欄が上に表示され、正しい方向に進んでいます。

入力オブジェクトではなく値を送信するには、次のようにします。

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

IDを送信するには:

var content = document.getElementById("content");
var vars = "content=" + content.id;
于 2013-03-15T16:28:22.870 に答える