Javascript 将ajax转换为json
我正试图用json转换我的ajax代码,因为我想用这种方式。 谁能帮我做这个,因为我不知道如何正确地做?具体来说,我希望我的php代码将Javascript 将ajax转换为json,javascript,php,json,Javascript,Php,Json,我正试图用json转换我的ajax代码,因为我想用这种方式。 谁能帮我做这个,因为我不知道如何正确地做?具体来说,我希望我的php代码将site\u id(是一个数字)返回给我的javascript函数,以便以后对其进行操作 以下是我的javascript代码: function load3() { var flag1 = true; do { var selection = window.prompt("Give the User Id:", "Type a n
site\u id
(是一个数字)返回给我的javascript函数,以便以后对其进行操作
以下是我的javascript代码:
function load3() {
var flag1 = true;
do {
var selection = window.prompt("Give the User Id:", "Type a number!");
if (/^[0-9]+$/.test(selection)) {
flag1 = false;
}
} while (flag1 != false);
$("#user_id").val(selection)
var flag2 = true;
do {
var selection2 = window.prompt("Give the Book Id:", "Type a number!");
if (/^[0-9]+$/.test(selection2)) {
flag2 = false;
}
} while (flag2 != false);
$("#book_id").val(selection2)
var flag3 = true;
do {
var selection3 = window.prompt("Give the Game Id:", "Type a number!");
if (/^[0-9]+$/.test(selection3)) {
flag3 = false;
}
} while (flag3 != false);
$("#game_id").val(selection3)
$.ajax({
type: 'POST',
url: 'http://127.0.0.1/PHP/mine1.php',
data: $('#LoadGame').serialize(),
success: function(html) {
//do something on success?
$('#outPut').html(html);
var bingoValue = 4;
if ($('#outPut').text().indexOf('' + bingoValue) > 0) {
//alert('bingo!');
window.location.href = 'https://support.wwf.org.uk/';
//document.location.replace('https://developer.mozilla.org/en-US/docs/Web/API/Location.reload');
} else {
alert('No!');
}
}
});
}
这是我的php代码,我想用json编写它:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<?php
/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
$link = mysqli_connect("127.0.0.1", "root", "", "mysql3");
// Check connection
if($link === false) {
die("ERROR: Could not connect. " . mysqli_connect_error());
}
$user_id =$_POST['user_id'];
$book_id =$_POST['book_id'];
$game_id =$_POST['game_id'];
$site_id =$_POST['site_id'];
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');
$query = "
SELECT site_id
FROM components
WHERE user_id='$user_id'
AND book_id='$book_id'
AND game_id='$game_id'
ORDER BY site_id
DESC LIMIT 1;
";
$res = mysqli_query($link,$query);
$result = array();
$res = mysqli_query($link,$query) or die(mysqli_error($link));
while($row = mysqli_fetch_assoc($res)){
$result[] = $row['site_id'];
}
echo json_encode($result);
// Close connection
mysqli_close($link);
?>
试试这个:
<?php
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');
$query = "
SELECT
site_id
FROM components
WHERE user_id = $user_id
AND book_id = $book_id
AND game_id = $game_id
ORDER BY site_id DESC
LIMIT 1;
";
$res = mysqli_query($link,$query);
$result = array();
$res = mysqli_query($link,$query) or die(mysqli_error($link));
while($row = mysqli_fetch_assoc($res)){
$result[] = $row['site_id'];
}
echo json_encode($result);
您可以将结果存储到一个数组中(不要每次迭代都回显),然后在获得所有结果后,只需回显json_encode($result)@bryanlores即可。感谢您的帮助。所以你的意思是改变这个echo$result代码>使用此代码echo json\u encode($result)
?我必须对javascript代码做些什么,否则我会让它保持原样吗?好吧,在你的javascript上,检查你得到的是否正确。然后我不确定,但可能要将其用作JSON,您需要对JSON.parse(html)进行解析,因为您还没有设置预期的响应,所以非常感谢您的帮助。事实上,它就像你的方式。但是我必须在我的javascript代码中做些什么,因为我看到我们在维护ajax技术。我必须在这方面做些更改吗?我将编辑代码,使其也包含JS代码和解决方案。好的,如果我很好地理解浏览器抱怨window.prompt自动打开的问题,那么消息本身就足以找出问题所在。但是当我们得到site_id时,您会发现这条消息。尝试使用console.log进行调试,当您看到ajax响应时,您将像访问任何其他对象(例如response.site_id)一样访问它。有时您不需要JSON.parse函数,所以您也可以尝试不使用该函数。我把链接放在上面,不使用JSON.parse函数,只做console.log(response);