php - 从php获取数据到ajax

标签 php jquery mysql ajax mysqli

我在将数据从 ajax 发送到 php 时遇到问题,我需要一些帮助

$.ajax({
            type: "post",
            url: "/raffle.php",
            dataType: "json",
            data: {
                "postraffle": "true",
                "title": $("#rtitle").val(),
                "message": $("#mess").val(),
                "maxentry": $("#maxentry").val(),
                "duration": $("#durr").val(),
                "filter": $("#reffil").val(),
                "split": $("input[name=split]:checked").val(),
                "pub": $("input[name=rafflepub]:checked").val(),
                "stype": $("input[name=stype]:checked").val(),
                "invo": $("input[name=invo]:checked").val(),
                "items[]": itms,
                "games[]": gmes,
                },
            success: function(data){
                if(data.status == "fail")
                {   
                alert(data.message);
                $("#rafBut").removeAttr("disabled");
                $("#rafBut").attr("value", "Raffle it!");
                }
                else if(data.status == "ok")
                {
                alert(data.message);
                }

            }
        });

PHP 脚本在这里

    <?php

    // getting data from AJAX 
    $raffle_title = $_POST['title'];
    $raffle_message = $_POST['message'];
    $raffle_maxentry = $_POST['maxentry'];
    $raffle_duration = $_POST['duration'];
    $raffle_filter = $_POST['filter'];
    $raffle_split = $_POST['split'];
  $raffle_pub = $_POST['pub'];
  $raffle_stype = $_POST['stype'];


  $done = false;

  $data = array(
      'status' => 'ok',
      'message' => 'saved! redirecting you!',
      'datakey' => 'HALLEYO!',
  );

  $host ="localhost"; // enter your host.
  $pass =""; // enter your password.
  $db = "test"; // Enter your database..
  $user ="4"; // enter your username.

  # MYSQL Connection

  $con=mysqli_connect($host,$user,$pass,$db);
  if (mysqli_connect_errno($con))
  {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

  foreach($_POST['items'] as $item){
    $query = "INSERT INTO table (heading,content,items) VALUES ('".$_POST['title']."', '".$_POST['message']."','".$item."')";
    // this should also be done for each item
    if (!mysqli_query($con, $query)) {
      printf("Error: %s\n", mysqli_error($con));
    }
  }

  echo $data;

  ?>

现在上面脚本的功能是从ajax中获取数据并将其上传到mysql数据库,然后将响应发送回ajax脚本,但目前无法正常工作。 我认为我的 mysql 查询可能有问题(php mysqli 参数化查询) 一些帮助将不胜感激。 谢谢!

最佳答案

尝试替换

echo $data;

echo json_encode($data);

回显数据只会给出“Array”字符串,而不是任何 JSON 编码的内容

关于php - 从php获取数据到ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21572511/

相关文章:

php - 使用 PHP 进行动态 MySQL 查询

php - 从 PHP 调用 Perl 脚本并传入变量,同时还使用可变的 perl 脚本名称

php - 如何使用 PHP DOMDocument 获取第一级节点?

php - 从 MySQL 结果 php 返回一个多维数组

javascript - Jquery UI Calendar//按月更改背景图片

mysql:简单的子查询非常慢,因为有 3000 万行

php - mysql:复制表中的某些行,更改重复行中的信息

javascript - 动态添加html select另一个选择框选项的onClick

javascript - Display CSS 属性设置为 none 后视频自动播放

java - 通过Java每天根据计划时间自动备份MySql DB