从 2 个不同的文本字段将 2 个值从 php 传递到 ajax
Posted
技术标签:
【中文标题】从 2 个不同的文本字段将 2 个值从 php 传递到 ajax【英文标题】:passing 2 values from php to ajax from 2 different text field 【发布时间】:2021-10-26 18:37:53 【问题描述】:我正在尝试将值从输入文本传递到 ajax,但我在解码时不断收到null
。
这是我写的。
<script>
function myAjax()
var username = $("#username").val();
var orderid = $("#orderid").val();
$.ajax(
type: "POST",
url: 'jumper.php',
data: data1:"username": username, "orderid": orderid,
datatype: 'json',
success:function(html)
document.getElementById("test").innerHTML = html;
);
</script>
<body>
<input type="text" id="username" name="username">
<input type="text" id="orderid" name="orderid">
<button id="btnkey" class="button" style="vertical-align:middle" onclick="myAjax();return false;"><span>SEARCH</span></button>
<div id="test" class="test"></div>
</body>
并解码:
$vars = (json_decode($_POST['data1']));
echo $vars;
我在这里不断收到null
。
【问题讨论】:
这不是您通过$_POST
变量收到的JSON,您需要为AJAX 调用返回JSON。试着先看看你在$_POST
中得到了什么。
尝试调试你在$_POST['data1']
得到的东西做echo $_POST['data1'];
或print_r($_POST['data1']);
然后决定你想做什么,如果你在POST 中没有得到任何东西那么你可能会改变你的Ajax 请求代码。
【参考方案1】:
如果你想发送JSON,你必须调用JSON.stringify()
data: data1: JSON.stringify("username": username, "orderid": orderid) ,
但你可以保持原样并直接使用
$username = $_POST['data1']['username'];
$orderid = $_POST['data1']['orderid'];
不清楚您为什么首先需要 data1
属性。
其他问题:
datatype: 'json'
应该是 dataType: 'json'
-- javascript 区分大小写。
echo $vars;
应该是var_dump($vars);
,因为$vars
是一个数组。
正如dataType
选项所期望的那样,这些都不会回显 JSON。
【讨论】:
【参考方案2】:只需将这些数据保存在 $.ajax 中
data: data1:"username": username, "orderid": orderid,
喜欢这个
data:"username": username, "orderid": orderid,
你会得到这样的帖子数据
$username = $_POST['username'];
$orderid = $_POST['orderid'];
这将减少代码,就像您不必处理 JSON 一样
【讨论】:
以上是关于从 2 个不同的文本字段将 2 个值从 php 传递到 ajax的主要内容,如果未能解决你的问题,请参考以下文章
mybatis一个字段传2个值及日期yyyy-mm-dd比较