从php获取数据到ajax

时间:2014-02-05 08:53:34

标签: 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参数化查询) 一些帮助将非常感激。 谢谢!

2 个答案:

答案 0 :(得分:4)

尝试替换

echo $data;

echo json_encode($data);

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

答案 1 :(得分:0)

您无法打印数组!

您必须将echo $data;改为echo json_encode($data);