Rumah > php教程 > php手册 > Ajax异步请求PHP数据,ajax异步php

Ajax异步请求PHP数据,ajax异步php

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-06-13 09:22:15
asal
1524 orang telah melayarinya

Ajax异步请求PHP数据,ajax异步php

来源:http://www.ido321.com/1138.html

接到了老师的一个作业,实现的布局如图:

如果输入了科室ID,科室名字只显示与ID对应的,若没有输入,则显示全部,然后根据I科室名字的值,在所属大科中的文本框自动显示科室名字所在的大科。例如:选择了心血管内科,则在所属大科显示内科。

主要代码如下:

根据ID请求科室

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

<span>function</span><span> showHint(str)

{

    <span>var</span> xmlhttp;

    <span>if</span> (window.XMLHttpRequest)

     {<span>// IE7+, Firefox, Chrome, Opera, Safari</span>

        xmlhttp=<span>new</span> XMLHttpRequest();

     }

      <span>else</span>

     {<span>// IE6, IE5</span>

        xmlhttp=<span>new</span> ActiveXObject(<span>"Microsoft.XMLHTTP"</span>);

     }

     xmlhttp.onreadystatechange=<span>function</span>()

    {

       <span>if</span> (xmlhttp.readyState==4 && xmlhttp.status==200)

      {

        document.getElementById(<span>"txtHint"</span>).innerHTML=xmlhttp.responseText;

      }

  }

    xmlhttp.open(<span>"GET"</span>,<span>"keshi.php?q="</span>+str,<span>true</span>);

    xmlhttp.send();

}</span>

Salin selepas log masuk

keshi.php:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

<span><?php

<span>/*防止恶意调用*/</span>

define(<span>"TEST"</span>,<span>'test'</span>);

<span>// 引入文件</span>

<span>include_once</span> <span>'mysql.func.php'</span>;

<span>// 数据库初始化</span>

connectMySQL();

selectDB();

setZiFuJi();

 

<span>//获得来自 URL 的 q 参数</span>

$q=$_GET[<span>"q"</span>];

<span>//如果 q 是数字或者数字字符串</span>

<span>if</span> (is_numeric($q))

  {

    $q = intval($q);

    $hint=<span>""</span>;

    $resultDKQ = queryDB(<span>"select name from table_dake where id=$q"</span>);

    $hint = <span>'科室名字:<select name="ksname" id="ksname" onchange="show(this.options[this.selectedIndex].value)">'</span>;

    <span>while</span> (!!$rowDKQ = fetchAssoc($resultDKQ))

    {

      $hint .= <span>'<optgroup label='</span>.$rowDKQ[<span>'name'</span>].<span>'>'</span>;

      $resultKSQ = queryDB(<span>"select table_dake.id,table_keshi.sid,table_keshi.name from table_dake,table_keshi where table_dake.name='{$rowDKQ['name']}' and table_keshi.sid=table_dake.id"</span>);

      <span>while</span>(!!$rowKSQ = fetchAssoc($resultKSQ))

      {

        $hint .= <span>'<option>'name'</span>].<span>'>'</span>.$rowKSQ[<span>'name'</span>].<span>'</option>'</span>;

      }

      $hint .= <span>'</optgroup>'</span>;

    }

  }

  <span>// 不是数字</span>

  <span>else</span>

  {

    $resultDK = queryDB(<span>"select table_dake.name from table_dake"</span>);

    $hint = <span>'科室名字:<select name="ksname" id="ksname" onchange="show(this.options[this.selectedIndex].value)">'</span>;

     <span>while</span> (!!$rowDK = fetchAssoc($resultDK))

    {

      $hint .= <span>'<optgroup label='</span>.$rowDK[<span>'name'</span>].<span>'>'</span>;

      $resultKS = queryDB(<span>"select table_dake.id,table_keshi.sid,table_keshi.name from table_dake,table_keshi where table_dake.name='{$rowDK['name']}' and table_keshi.sid=table_dake.id"</span>);

      <span>while</span>(!!$rowKS = fetchAssoc($resultKS))

      {

        $hint .= <span>'<option>'name'</span>].<span>'>'</span>.$rowKS[<span>'name'</span>].<span>'</option>'</span>;

      }

      $hint .= <span>'</optgroup>'</span>;

    }

  }

 $response=$hint;

<span>//输出响应</span>

<span>echo</span> $response;

?></span>

Salin selepas log masuk

 

效果:

未输入ID如上图,输入ID在下图:

下一篇:百家搜索:在网站中添加Google、百度等搜索引擎

用ajax提交异步后,PHP该怎写代码用来返回处理的结果到客户端

在S端直接ECHO '字符串';或 EXIT(json_encode(数组));就行了,
 

ajax的异步

每次请求是没问题的,但是每次请求肯定会有延时。异步的问题只是会有延时,不会存在接收不到返回值的问题,收不到返回值肯定是你哪里写错了。

同时你这个情况我的比较建议一次就把数据都请求过来,存在客户端这边,然后根据需要显示就可以了。

希望对你有帮助!
 

Label berkaitan:
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Isu terkini
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan