没有得到ajax-xmlhttp.open中的字符串值(“GET”,“xxx.php?q =”+ str,true);

From the below example,if value is in numbers its working correctly.But if its in string the value displays as 0 W3 Schools Example

HTML:

<select name="users" onchange="showUser(this.value)">
  <option value="">Select a person:</option>
  <option value="abc-01">Peter Griffin</option>
  <option value="aaac-02">Lois Griffin</option>
  </select>

SCRIPT:

function showUser(str) {
    if (str == "") {
        document.getElementById("txtHint").innerHTML = "";
        return;
    } else { 
        if (window.XMLHttpRequest) {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            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("txtHint").innerHTML = xmlhttp.responseText;
            }
        }
        xmlhttp.open("GET","ajax2.php?q="+str,true);
        xmlhttp.send();
    }
}

PHP:

$q = intval($_GET['q']);        
echo    $q ;

I get 0 as value.Need help

You are trying to convert String to int in php as there are String values in your htm code and you are trying to convert these values in int in you php code so correct your code accordingly.

if html is

<select name="users" onchange="showUser(this.value)">
  <option value="">Select a person:</option>
  <option value="abc-01">Peter Griffin</option>
  <option value="aaac-02">Lois Griffin</option>
  </select>

then php code would be.

$q = $_GET['q'];       
echo    $q ;

You are trying to return an intval in php of a string "abc-01"

获取变量整数值。