传递两个值从PHP到ajax从两个不同的文本字段



我正试图将输入文本传递到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

如果你想发送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。

将这些数据保存在$.ajax

data:{ data1:{"username": username, "orderid": orderid}},

这样的

data:{"username": username, "orderid": orderid},

你会得到这样的post数据

$username = $_POST['username'];
$orderid = $_POST['orderid'];

这将减少代码,就像你不必处理JSON

相关内容

  • 没有找到相关文章

最新更新