我想知道为什么2个变量不能进入js

时间:2018-04-23 21:37:51

标签: javascript html ajax

我正在开发Ajax-php livesearch编程。我想在Html输入框中输入2个参数,但JS无法接收这些值。为什么呢?

我的HTML

<form class="category 1" name="search" action="display.php" onsubmit="return validateForm()" method="get">
    <select id="category" class="category" onchange="showUser1()" title="choose the language you want">
        <option value="">카테고리를 선택하세요</option>
        <optgroup label="고속 검색 : 시작하는 단어가 매칭됩니다.">
            <option value="3d">3D</option>
            <option value="dorl">돌란드 사전</option>
            <option value="term">영한 표준용어사전</option>
            <option value="kcd">표준질병코드</option>
            <option value="ind">인덱스</option>
            <option value="toc">목차</option>
            <option value="coupling">연결고리</option>
            <option value="fig">Figure</option>
            <option value="tab">Table</option>
    </select>
    Input:
    <input type="text" name="search" id="qstr" onkeyup="showUser1()"> Input:
    <input type="text" name="search" id="pstr" onkeyup="showUser1()">
</form>

我的js代码如下所示。

function showUser1(str) {
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    }
    else { // code for IE6, IE5 
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("hint").innerHTML = xmlhttp.responseText;
        }
    }
    var category = document.getElementById('category').value;
    var q = document.getElementById('qstr').value + "&p=" + document.getElementById('pstr').value;

    xmlhttp.open("GET", "./livesearch_" + category + ".php?q=" + q, true);
    xmlhttp.send();
}

确切地说,1个select-option参数 - 良好的输入 - ,qstr ID变量 - 良好的输入 - 和pstr ID变量 - 不起作用=

为什么pstr不工作? enter image description here

chrome控制台窗口如下。 enter image description here

3 个答案:

答案 0 :(得分:2)

尝试使用唯一名称

    <div class="col-md-6 text-left">
        {% if items.has_other_pages %}
                <div class="btn-group" >
                {% if items.has_previous %}
                  <button type="button" class="btn btn-default btn-md page-first" onclick="location.href='?pagenumber=1&limit={{rows}}';">First</button>
                  <button type="button" class="btn btn-default btn-md page-arrows" onclick="location.href='?pagenumber={{ items.previous_page_number }}&limit={{rows}}';">&laquo;</button>
                {% else %}
                  <button type="button" class="btn disabled" >First</button>
                  <button type="button"  class="btn disabled">&laquo;</button>

                {% endif %}
                    </div>
        <span><b>Page </b></span>
                <input type="text" style="width:50px" onchange="location.href='?pagenumber={{items.number}}&limit={{rows}}';" onkeyup="this.onchange()" oninput="this.onchange()" value="{{items.number}}" >
                    <span> of {{items.paginator.num_pages}}</span>


                 <div class="btn-group" >
                {% if items.has_next %}

                  <button type="button"  class="btn btn-default btn-md page-arrows"  onclick="location.href='?pagenumber={{ items.next_page_number }}&limit={{rows}}';">&raquo;</button>
                  <button type="button"  class="btn btn-default btn-md page-last" onclick="location.href='?pagenumber={{ items.paginator.num_pages }}&limit={{rows}}';">Last</button>
                {% else %}

                  <button type="button"  class="btn btn disabled">&laquo;</button>
                    <button type="button" class="btn disabled" >Last</button>

                {% endif %}
                 </div>

        {% endif %}


    </div>

答案 1 :(得分:0)

我在js代码中做了另一个代码作为技巧。

而不是代码,

var q = document.getElementById('qstr').value + "&p=" + document.getElementById('pstr').value;

var q = document.getElementById('qstr').value+" "+document.getElementById('pstr').value; 

我更换了&#34;&amp; p =&#34;用&#34; &#34 ;. 这很有效。

enter image description here

我在php中爆炸后,我从2个输入中获得2个参数。我觉得这是我最好的。

当然,空白区域不适合搜索使用。 也许&#34; +&#34;将有利于PHP中的多个变量。

var q = document.getElementById('qstr').value+"+"+document.getElementById('pstr').value; 

非常感谢真诚的建议!!

答案 2 :(得分:0)

好的,所以我看到你的控制台有变量的值:pstr和qstr,所以这对你有用:

if (s.StartsWith("8/6/08mz: ")) {
    var ans = Regex.Split(s, @"(?<=[0-9]{7}) ");
}

所以你希望最终...... php?q = cd&amp; p = ab