使用post发送数据,必须设置如下格式 ajax.setRequestHeader(‘Content-type:application/x-www-form-urlencoded’); 如果需要像HTML表单那样post数据,请使用setRequestHeader()
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> .imageBox{ width: 200px; height: 200px; border: 1px solid #0094ff; margin: 20px auto; } .infoBox{ border:1px solid #0094ff; margin: 20px auto; width: 300px; height: 100px; } body{ text-align: center; /* 如果要一行 写完 大小 通过 / 分隔 再写大小 */ /* background: url('xxx.jpg') no-repeat center / 200px 200px; */ /* background: url('xxx.jpg') no-repeat center / contain; */ } </style> </head> <body> <!-- div.imageBox+div.infoBox+input[type='button' class='starBtn']*3 --> <div class="imageBox"></div> <div class="infoBox"></div> <input type="button" class="starBtn" value='baby'> <input type="button" class="starBtn" value='hxm'> <input type="button" class="starBtn" value='lh'> </body> </html> <script type="text/javascript"> // 为 按钮 绑定 点击事件 var btnList = document.querySelectorAll('.starBtn'); for (var i = 0; i < btnList.length; i++) { btnList[i].onclick = function () { var ajax = new XMLHttpRequest(); // 使用post ajax.open('post','02.star_image_text.php'); // 必须要设置 请求报文 ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded"); // 发送请求 name=jay ajax.send('name='+this.value); // 注册事件 ajax.onreadystatechange = function () { if (ajax.readyState == 4 && ajax.status == 200) { // console.log(ajax.responseText); // 分隔字符串 根据 竖线 var strArr = ajax.responseText.split('|'); // 确实是数组哦 (⊙o⊙) console.log(strArr); // 从数组中 取出 不同的值 设置给 不同的 dom元素即可 // 背景图片 document.querySelector('.imageBox').style.background = 'url('+strArr[0]+') no-repeat center / cover'; // 描述信息 document.querySelector('.infoBox').innerHTML = strArr[1]; } } } } </script>服务器端PHP
<?php // 获取 post数据 $key = $_POST['name']; // 获取 一个value 这里使用 关系型数组 $starArr =array( 'baby'=>array('images/baby.jpg','Angelababy,中文名杨颖,1989年2月28日出生于上海,中国内地影视女演员、模特'), 'hxm'=>array('images/hxm.jpg','baby的老公,教主,著名男演员,最近演了一部烂片'), 'lh'=>array('images/lh.jpg','红魔,傻狍子,小鲜肉,萌萌哒,我家有一副1米的海报') ); // 使用key 获取 对应的value 这里是一个 数组 $oneStar = $starArr[$key]; // 将 数组中的 两个 值 都返回给用户 echo $oneStar[0]; // 为了 在浏览器分隔方便 这里 添加一个分隔符 echo '|'; echo $oneStar[1]; ?>