Javascript die(json_encode))重定向到显示json数据的页面
表单提交完成后,页面将显示原始json数据,而不是将其记录到控制台。php和html代码都在同一个页面上,所以我根本不希望页面发生变化 职位 php表单处理Javascript die(json_encode))重定向到显示json数据的页面,javascript,php,html,jquery,ajax,Javascript,Php,Html,Jquery,Ajax,表单提交完成后,页面将显示原始json数据,而不是将其记录到控制台。php和html代码都在同一个页面上,所以我根本不希望页面发生变化 职位 php表单处理 <?php if (isset($_POST['orderId'])){ header('Content-Type: application/json'); require 'private/database.php'; $sql = "SELECT * FROM form";
<?php
if (isset($_POST['orderId'])){
header('Content-Type: application/json');
require 'private/database.php';
$sql = "SELECT * FROM form";
$result = mysqli_query($conn, $sql);
$data = array();
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
$data[] = $row;
}
}
die(json_encode($data));
}
?><!DOCTYPE html>
<?php
if(isset($_POST['loadInfo'])){
header('Content-Type: application/json');
require 'private/database.php';
$sql = "SELECT * FROM form";
$result = mysqli_query($conn, $sql);
$data = array();
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
$data[] = $row;
}
}
die(json_encode($data));
}
?><!DOCTYPE html>
我已经在另一个网页上实现了类似的东西,但它按照我的意图工作
职位
函数loadInfo(){
jQuery(函数($){
$.ajax({
方法:“张贴”,
url:“/admin.php”,
数据:{loadInfo:1},
数据类型:“json”,
成功:功能(数据){
控制台日志(数据);
对于(变量i=0;i
php表单处理
<?php
if (isset($_POST['orderId'])){
header('Content-Type: application/json');
require 'private/database.php';
$sql = "SELECT * FROM form";
$result = mysqli_query($conn, $sql);
$data = array();
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
$data[] = $row;
}
}
die(json_encode($data));
}
?><!DOCTYPE html>
<?php
if(isset($_POST['loadInfo'])){
header('Content-Type: application/json');
require 'private/database.php';
$sql = "SELECT * FROM form";
$result = mysqli_query($conn, $sql);
$data = array();
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
$data[] = $row;
}
}
die(json_encode($data));
}
?><!DOCTYPE html>
为什么这两个页面的行为不同?您应该停止默认表单事件。 浏览器将继续该操作并提交表单,以便使用POST重新加载页面 你可以阻止使用
jQuery(函数($){
$(“#idSearch”).submit(函数(事件){
event.preventDefault();//您应该停止默认窗体事件。
浏览器将继续该操作并提交表单,以便使用POST重新加载页面
你可以阻止使用
jQuery(函数($){
$(“#idSearch”).submit(函数(事件){
event.preventDefault();//已解决:
<form action="index.php" method="POST" id="idSearch">
<input type="text" name="orderId" placeholder="訂單號瑪" required><br>
<input type="submit">
</form>
当表单被发送到同一个.php时,我不认为我需要一个动作参数。我添加了路径后,代码就运行了。奇怪。解决了:
<form action="index.php" method="POST" id="idSearch">
<input type="text" name="orderId" placeholder="訂單號瑪" required><br>
<input type="submit">
</form>
我认为我不需要表单的操作参数,因为它被发送到同一个.php?我添加了一个路径后,代码就工作了。奇怪。同样在第二个示例中,当你真的想使用类型
属性时,你正在使用方法
属性。很可能第二个属性实际上正在发送一个get
请求。同样在第二个示例中,当您确实想要使用type
属性时,您正在使用方法
属性。第二个属性很可能实际发送了get
请求。不确定原因,但表单现在似乎没有提交。我在php代码中为if语句添加了一个回音,但没有执行。没有任何错误消息。“网络”选项卡的结果是什么?请求的HTTP状态是什么,如果原始内容是什么?200好的。它应该返回的数据看起来也很好。所以问题可能是我的php代码?我记得在另一页上这一行有问题。“die(json_encode($data));“我更喜欢这样使用:header('Content-Type:text/plain;chaset=UTF-8');echo-json_-encode($data);退出(0)
,还有…哦,我发现了一个错误:success
vssuccess
-我已经更新了答案。谢谢你发现了!但是由于某种原因它仍然不起作用哈哈,我明天再试一次。不知道为什么,但表单现在似乎没有提交。我在php代码中添加了一个对if语句的回应,但它没有得到executed。没有任何错误消息。“网络”选项卡的结果是什么?请求的HTTP状态是什么,如果原始内容是什么?200好的。它应该返回的数据看起来也很好。所以问题可能是我的php代码。我记得在另一页上,这行代码有问题。“die(json_encode($data));”我更喜欢这样使用:header('Content-Type:text/plain;chaset=UTF-8');echo-json_-encode($data);exit(0);
,还有……哦,我发现了一个问题:输入错误:success
vssuccess
-我已经更新了答案。谢谢你发现了!但出于某种原因它仍然不起作用哈哈,我明天再试一次