JavaScript编程实现本地将一个数组发送到php网站上,php网站解析数组中的name和sex,在数据库的数据表中找到name和sex相同的一列,将该列中的j1,j2,j3发送回客户端,客户端解析得到j1,j2,j3的代码,j1,j2,j3的数据类型为JSON,客户端要求使用js,php网站使用了echo
时间: 2023-05-22 20:04:59 浏览: 215
以下是实现该功能的 JavaScript 代码:
```
var arr = [{name: "张三", sex: "男"}, {name: "李四", sex: "女"}]; // 数组
var xhr = new XMLHttpRequest(); // 创建 XMLHttpRequest 对象
xhr.open('POST', 'http://example.com/parse.php', true); // 发送 POST 请求到 parse.php
xhr.setRequestHeader('Content-type', 'application/json'); // 设置请求头为 JSON 格式
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) { // 请求完成,状态码为 200
var parsedObj = JSON.parse(xhr.responseText); // 解析返回的 JSON 字符串
console.log(parsedObj.j1, parsedObj.j2, parsedObj.j3); // 输出 j1,j2,j3 的值
}
};
xhr.send(JSON.stringify(arr)); // 发送数组的 JSON 字符串到服务器端
```
接下来,这是实现该功能的 PHP 代码:
```
<?php
$input = file_get_contents('php://input'); // 从请求中获取 JSON 字符串
$data = json_decode($input, true); // 解析 JSON 字符串为数组
$result = array(); // 创建一个空数组用于存放查询结果
foreach ($data as $item) {
// 构造 SQL 查询语句
$sql = "SELECT j1, j2, j3 FROM table_name WHERE name = '{$item['name']}' AND sex = '{$item['sex']}'";
// 执行 SQL 查询
$queryResult = mysqli_query($conn, $sql);
if (mysqli_num_rows($queryResult) > 0) {
// 获取第一行的查询结果
$row = mysqli_fetch_assoc($queryResult);
// 将 j1,j2,j3 的值存入 $result 数组
$result[] = array('j1' => json_decode($row['j1']), 'j2' => json_decode($row['j2']), 'j3' => json_decode($row['j3']));
}
}
echo json_encode($result); // 将 $result 数组转换为 JSON 字符串并输出
?>
```
注意到 `mysqli_query` 函数将执行一条 SQL 查询语句,该语句将查询数据库表 `table_name` 中的一列。对于安全性,查询语句与传递到数据表查询语句中的信息需要进行过滤,可以使用合适的过滤方法,例如:`mysqli_real_escape_string`、`htmlspecialchars`等。
阅读全文