【问题标题】:Why I can't add in database?为什么我不能添加数据库?
【发布时间】:2016-05-18 10:10:02
【问题描述】:

我正在尝试将数据从 html 发送到 php,并尝试将其添加到我的数据库中。 我就是不知道怎么回事,谁能帮帮我?

这是脚本中的代码:

 $("#addbtn").click(function(){
    var cityName=document.getElementById("cityField").value.toString();
    var countryName=document.getElementById("countryField").value;
    var description=document.getElementById("descriptionField").value;
    var touristTargets=document.getElementById("targetsField").value;
    var costPerDay=parseInt(document.getElementById("costField").value);
    $.ajax({
      dataType: "json",
      type: "GET",
      url: "getCities.php",
      data: {limit:100,action:"add",cityField:cityField,countryField:countryField,descriptionField:descriptionField,targetsField:targetsField,costField:costPerDay},
      success: {function(msg) {
        alert(msg.status);
      }}

    }); 

这个在 php 文件中:

  $action= $_REQUEST["action"];
  if($action == "add"){
    $city=json_decode($_GET["cityField"]);
    $country=json_decode($_GET["countryField"]);
    $descript=json_decode($_GET["descriptionField"]);
    $targets=json_decode($_GET["targetsField"]);
    $cost=json_decode($_GET["costField"]);
    $command="INSERT INTO vacantiondestinations(cityName,countryName,description,touristTargets,costPerDay) VALUES(?,?,?,?,?)";
    $stmt=$conn->prepare($command);
    $stmt->bind_param("ssssi",$city,$country,$descript,$targets,$cost);
    $stmt->execute();

    if($stmt)
        echo json_encode(array('status'=>'success'));
    else
        echo json_encode(array('status'=>'failed'));

    }

【问题讨论】:

  • if($_GET['action'] == "add"){ 代替 if($action == "add"){
  • 我已经定义了:$action= $_REQUEST["action"];但我忘了在这里添加它

标签: php html json ajax mysqli


【解决方案1】:

你使用了错误的变量名,代码应该是这样的:

data:{limit:100,action:"add",cityField:cityName,countryField:countryName,descriptionField:description,targetsField:touristTargets,costField:costPerDay},

【讨论】:

    【解决方案2】:

    既然您要声明这些变量 - 它们不应该是您的数据声明中包含的值吗(截断代码以仅显示重要内容?

        var cityName=...
        var countryName=...
        var description=...
        var touristTargets=...
        var costPerDay=...
    
    ...data: {limit:100,action:"add",cityField:cityName,countryField:countryName,descriptionField:description,targetsField:touristTargets,costField:costPerDay}...
    

    【讨论】:

      【解决方案3】:

      由于您似乎没有在任何地方将数据编码为 JSON,所以大多数时候当您调用 json_decode($_GET["somevalue"]) 时,您将获得 NULL。

      不要在非 JSON 的内容上运行 json_decode

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-05-04
        • 1970-01-01
        • 1970-01-01
        • 2020-12-02
        • 2020-10-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多