【问题标题】:How to send and recieve multivariables to php using json and array如何使用json和数组向php发送和接收多个变量
【发布时间】:2019-02-06 09:13:47
【问题描述】:

我想使用 jQuery 将一些数据从表单发送到 PHP 文件。我已经搜索过,我注意到我必须将数据作为 JSON 发送并以数组的形式接收多个变量。但是我很困惑它不起作用。

<input id="username" type="text" class="inputBox">
<input id="password" type="password" class="inputBox">
<button id="submitLogin" class="submitLogin">login</button>
<div id="test"></div>
<div id="test1"></div>
$(document).ready(function() {
  $("#submitLogin").click(function() {
    var superuser = $("#username").val();
    var superpass = $("#password").val();
    $.ajax({
      type: "POST",
      url: 'http://localhost/mainclinic/controllers/login/login.php',
      dataType: 'application/json',
      data: {
        loginid: superuser,
        loginpass: superpass
      },
      cache: false,
      success: function(result) {
        $('#test').html(result[0]);
        $('#test1').html(result[1]);
      }
    })
  })
})
<?php
  include "../config.php";

  if (!$db) 
  {
    die("Connection failed: " . mysqli_connect_error());
  }

  if ($_SERVER['REQUEST_METHOD'] === 'POST') 
  {
    $username = mysqli_real_escape_string($db, $_POST['loginid']);
    $password = mysqli_real_escape_string($db, $_POST['loginpass']);
    $sql = "SELECT id FROM superusers WHERE docid = '$username' and doccpass = '$password'";
    $result = mysqli_query($db, $sql);
    $row = mysqli_fetch_array($result, MYSQLI_ASSOC);

    if(mysqli_num_rows($result) > 0)
    {
      $array = array(success, $username);
      echo json_encode($array);
    }
    else
    {
      $array = array(failed, nousername);
      echo json_encode($array);
    }
  }
?>

【问题讨论】:

  • console.log(result) 成功并检查响应
  • 什么是nousername?是字符串吗?
  • 是的,它是字符串
  • “它不起作用”非常广泛。您是否确定了失败的确切位置?是客户端JS还是PHP?请求中是否发送了值?收到什么?我们需要更多信息才能帮助诊断问题

标签: php jquery arrays json ajax


【解决方案1】:

将此部分更改为:

$.ajax
    ({
        type:"POST",
        url:'http://localhost/mainclinic/controllers/login/login.php',
        dataType: "json",
        data:{loginid:superuser,loginpass:superpass},
        cache: false,
        success:function (result) {
            $('#test').html(result.status);
            $('#test1').html(result.result);
        }
    })

Php 代码如下:

if(mysqli_num_rows($result) > 0)
{
    $array = array('status' => 'success', 'result' => $username);
    echo json_encode($array);
}else
{
    $array = array('status' => 'failed', 'result' => 'nousername');
    echo json_encode($array);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    • 2018-10-06
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    相关资源
    最近更新 更多