如何在ajax中按钮点击事件时进行

时间:2016-06-15 17:24:25

标签: javascript php html mysql ajax

我想创建一个页面,用户在文本框中放置任何单词并返回所有带有该单词的书籍(书籍是在mysql中,我将在xmlconvert.php中转换查询)

<form id="keyword" >
    <input type="text" name="value" id="book"/>
    <br/>
    <button  onclick="showhint(functionvalue())">Search By Title</button>
</form>

有一个函数来获取用户放置的单词并将其发送到ajax showhint();

<script>
    function functionvalue() {
        var bookname = document.getElementById('book').value;
        return bookname;
    }
</script>

有一个ajax代码从xmlconvert.php文件中获取responsetext,其中我得到了q用户放置的单词,并使用该单词进行查询并以xml格式返回书籍

<script type="text/javascript">
    function showhint(str) {
        var ajax = new XMLHttpRequest();

        ajax.onreadystatechange = function {
            if (xhttp.readyState == 4 && xhttp.status == 200) {
                document.getElementById("keyword").innerHTML = xhttp.responseText;
            }
        };

        xhttp.open("GET","xmlconvert.php?q="+str,true);
        xmlhttp.send();                  
    }
 </script>

我不知道我的想法是否正确,请告诉我是否可以做到这一点以及如何做到这一点。 对不起我的英语不太好

2 个答案:

答案 0 :(得分:1)

您将新的XMLHttpRequest分配给变量ajax,然后使用其他名称调用其命令。如果你将其命名为ajax,则需要执行ajax.readyState,ajax.status,ajax.open,ajax.send等。

所以这应该有效:

<script type="text/javascript">
        function showhint(str){
            var ajax=new XMLHttpRequest();
                ajax.onreadystatechange=function{
                    if (ajax.readyState == 4 && ajax.status == 200) {
                         document.getElementById("keyword").innerHTML = ajax.responseText;
                    }
                 };
            ajax.open("GET","xmlconvert.php?q="+str,true);
            ajax.send();

        }

    </script>

答案 1 :(得分:0)

需要进行以下更改:

  1. ajax.onreadystatechange应该是函数定义,因此在函数关键字
  2. 之后包含()
  3. XMLHttpRequest应该通过ajax var。
  4. 引用

    所以正确的代码是:

    <script type="text/javascript">
        function showhint(str) {
            var ajax = new XMLHttpRequest();
    
            ajax.onreadystatechange = function () {
                if (ajax.readyState == 4 && ajax.status == 200) {
                    document.getElementById("keyword").innerHTML = ajax.responseText;
                }
            };
    
            ajax.open("GET","xmlconvert.php?q="+str,true);
            ajax.send();                  
        }
     </script>