我正在开发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变量 - 不起作用=
答案 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}}';">«</button>
{% else %}
<button type="button" class="btn disabled" >First</button>
<button type="button" class="btn disabled">«</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}}';">»</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">«</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 ;. 这很有效。
我在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