$ _GET JavaScript和AJAX ......

时间:2016-08-08 08:03:02

标签: javascript php ajax string get

我是PHP的新手,我(正在尝试)开发我的第一个AJAX代码......

我正在尝试从带有多个选项的选择中传递属性,每个选项都有自己独特的属性"值"这是一个字符串。

PHP文件获取值并对其执行某些操作(例如将其打印出来)。然后生成的文件返回到我的主HTML页面。

这是源代码......

这是我的 javaScript

function showUser(myElement) {

    var str = myElement.options[myElement.selectedIndex].getAttribute("values");

    if (str == "") {
        document.getElementById("myResponse").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("myResponse").innerHTML = xmlhttp.responseText;
            }
        }
        xmlhttp.open("GET","getuser.php?q="+encodeURIComponent(str),true);
        xmlhttp.send();
    }
}

我的 HTML 如下:

<form>
<select name="users" onchange="showUser(this)">
  <option values="">Select a person:</option>
  <option values="Rasmus Lerdorf">Creator of PHP</option>
  <option values="Linus Torvalds">Developed Linux</option>
  <option values="Dennis Ritchie">Developper of C</option>
  </select>
</form>
<br>
<div id="myResponse"><b>Person info will be listed here...</b></div>

我的 PHP 是:

<?php
$q = intval($_GET['q']);
echo $q;
?>

我得到0而不是文本字符串,我的代码出了什么问题?

1 个答案:

答案 0 :(得分:1)

傻傻的,

我从教程中复制并粘贴了一个基本示例,但我没有意识到PHP代码将通过GET发送的字符串转换为整数。

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

代码应为:

$q = $_GET['q'];

在我开发的早期阶段,我确实传递了一个整数,因此代码正在运行。

代码返回0而不是错误,因为失败时字符串的intval为0。

在这里写下这个问题,我意识到了错误......