Почему я не могу добавить в базу данных?

-1

Я пытаюсь отправить данные из 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'));

    }
  • 1
    if($_GET['action'] == "add"){ вместо if($action == "add"){
  • 0
    Я определил: $ action = $ _REQUEST ["action"]; но я забыл добавить это здесь
Теги:
mysqli

3 ответа

1
Лучший ответ

вы использовали неправильное имя переменных, код должен выглядеть следующим образом:

данные: {предел: 100, действие: "добавить", cityField: CityName, countryField: COUNTRYNAME, descriptionField: описание, targetsField: touristTargets, costField: costPerDay},

  • 0
    О ... спасибо большое .. сейчас работает !!!!
1

Поскольку вы объявляете эти переменные - не должны ли они быть значениями, включенными в декларацию данных (код усечен, чтобы показать только важный материал?

    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}...
0

Поскольку вы не кодируете данные как JSON в любом месте, большую часть времени, когда вы вызываете json_decode($_GET["somevalue"]) вы получите NULL.

Не запускайте json_decode над вещами, которые не являются JSON.

  • 0
    Хорошо, тогда я буду использовать только $ _GET ["field"], но это все равно не работает ..

Ещё вопросы

Сообщество Overcoder
Наверх
Меню