【问题标题】:passing 2 values from php to ajax from 2 different text field从 2 个不同的文本字段将 2 个值从 php 传递到 ajax
【发布时间】: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 请求代码。

标签: javascript php jquery json 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 一样

    【讨论】:

      猜你喜欢
      • 2020-01-22
      • 1970-01-01
      • 1970-01-01
      • 2015-09-01
      • 1970-01-01
      • 2016-04-14
      • 1970-01-01
      • 2018-03-24
      • 1970-01-01
      相关资源
      最近更新 更多