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

Javascript 我想知道为什么两个变量不能进入js,javascript,html,ajax,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()"

我正在从事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>
确切地说,1选择选项param-良好输入-、qstr ID变量-良好输入-、pstr ID变量-不工作=

为什么pstr不起作用??

chrome控制台窗口如下所示。

尝试一个唯一的名称

Input: <input type="text" name="search" id="qstr" onkeyup="showUser1()" > 
Input: <input type="text" name="search-2" id="-pstr" onkeyup="showUser1()" >
请尝试一个唯一的名称

Input: <input type="text" name="search" id="qstr" onkeyup="showUser1()" > 
Input: <input type="text" name="search-2" id="-pstr" onkeyup="showUser1()" >

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

而不是下面的代码

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

var q = document.getElementById('qstr').value+" "+document.getElementById('pstr').value; 
我将&p=替换为。 这很有效

在php中分解函数之后,我从2个输入中获得了2个参数。我想这是我最好的选择

当然,空格不适合用于搜索。 在php中,+可能适用于多个变量

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

非常感谢你真诚的建议

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

而不是下面的代码

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

var q = document.getElementById('qstr').value+" "+document.getElementById('pstr').value; 
我将&p=替换为。 这很有效

在php中分解函数之后,我从2个输入中获得了2个参数。我想这是我最好的选择

当然,空格不适合用于搜索。 在php中,+可能适用于多个变量

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

非常感谢你真诚的建议

好的,我看到您的控制台中有变量的值:pstr和qstr,那么这对您是否有效:

var q = qstr + "&p=" + pstr;

那么您希望最终…php吗?q=cd&p=ab

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

var q = qstr + "&p=" + pstr;


那么,您希望最终…php?q=cd&p=ab

为什么会有什么不同呢?因为他使用getElementById访问字段,name属性对于AJAX请求来说并不重要,但这两个字段仍然应该有两个不同的名称,因为在提交表单以显示之后,这会很重要。phpEven使用相同的名称,这不是Ajax调用的问题,也不是表单提交的问题,因为它只是查询字符串中的两个实体。这个答案实际上对OPs问题没有任何作用。Jim,你正在形成的阵列不会影响ajax吗?{search:[1,2]},为什么会有什么不同呢?因为他使用getElementById访问字段,name属性对于AJAX请求来说并不重要,但这两个字段仍然应该有两个不同的名称,因为在提交表单以显示相同名称的.phpEven之后,这很重要,这不是Ajax调用的问题,也不是表单提交的问题,因为它只是查询字符串中的两个实体。这个答案实际上对OPs问题没有任何作用。Jim,你正在形成的阵列不会影响ajax吗?{search:[1,2]},您应该对查询字符串值进行编码。请具体描述哪些不起作用。document.getElementById'pstr'。值是否返回正确的值?如果在showUser1函数末尾执行console.logq,会发生什么情况?您不会取消表单提交……他没有提交表单。不知何故,我认为您不需要再考虑IE5或IE6。您可能需要寻找一个更为流行的AJAX实现示例,或者使用类似jQuery的库。请具体描述哪些不起作用。document.getElementById'pstr'。值是否返回正确的值?如果在showUser1函数末尾执行console.logq,会发生什么情况?您不会取消表单提交……他没有提交表单。不知何故,我认为您不需要再考虑IE5或IE6。您可能希望寻找一个更为流行的AJAX实现示例,或者使用类似jQuery的库。