nextButton.addEventListener("click", function() { alert("切换到后一张图片的逻辑"); mysqli_data_seek($result, mysqli_num_rows($result)); $next_row = mysqli_fetch_assoc($result); alert("切换到后一张图片的逻辑" + $next_row.subcategory_id); }); 中 $result是数据库的结果集,如果想在这里面使用$result,这样写正确吗?如果不正确请给出正确的写法
时间: 2024-03-24 20:38:02 浏览: 106
不正确。在 JavaScript 中不能直接使用 PHP 代码,因此 `$result` 变量不能直接在 JavaScript 中使用。正确的做法是在后端使用 PHP 脚本获取数据库结果集,并将结果集以 JSON 格式返回前端,然后在前端使用 JavaScript 处理 JSON 数据。
以下是一种可能的方案:
在后端,您可以创建一个 PHP 脚本 `get_next_image.php`,用于获取下一张图片的数据,并将数据以 JSON 格式返回前端。示例代码如下:
```php
<?php
// 连接数据库
$conn = mysqli_connect('localhost', 'username', 'password', 'database');
if (!$conn) {
die('数据库连接失败');
}
// 查询下一张图片的数据
$sql = 'SELECT * FROM images WHERE id > ' . mysqli_real_escape_string($conn, $_GET['last_id']) . ' ORDER BY id LIMIT 1';
$result = mysqli_query($conn, $sql);
if (!$result) {
die('查询数据失败');
}
// 将数据转换成 JSON 格式并返回前端
$data = mysqli_fetch_assoc($result);
echo json_encode($data);
```
在前端,您可以使用 JavaScript 发送 AJAX 请求到后端获取下一张图片的数据,然后在成功获取数据后更新页面。示例代码如下:
```javascript
var lastId = 0;
nextButton.addEventListener('click', function() {
alert('切换到后一张图片的逻辑');
var xhr = new XMLHttpRequest();
xhr.open('GET', 'get_next_image.php?last_id=' + lastId);
xhr.onload = function() {
if (xhr.status === 200) {
// 成功获取数据后更新页面
var data = JSON.parse(xhr.responseText);
lastId = data.id;
alert('切换到后一张图片的逻辑' + data.subcategory_id);
} else {
alert('获取数据失败');
}
};
xhr.send();
});
```
在这段代码中,我们定义了一个变量 `lastId`,用于存储上一次获取图片数据时返回的最后一张图片的 ID。在每次点击按钮时,我们将上一次返回的最后一张图片的 ID 作为参数发送到后端,后端查询比这个 ID 大的图片数据并返回最新的一张图片的数据。在成功获取数据后,我们将返回的数据解析成 JSON 格式,并更新页面。
阅读全文