Я пытаюсь отправить данные из 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'));
}
вы использовали неправильное имя переменных, код должен выглядеть следующим образом:
данные: {предел: 100, действие: "добавить", cityField: CityName, countryField: COUNTRYNAME, descriptionField: описание, targetsField: touristTargets, costField: costPerDay},
Поскольку вы объявляете эти переменные - не должны ли они быть значениями, включенными в декларацию данных (код усечен, чтобы показать только важный материал?
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}...
Поскольку вы не кодируете данные как JSON в любом месте, большую часть времени, когда вы вызываете json_decode($_GET["somevalue"])
вы получите NULL.
Не запускайте json_decode
над вещами, которые не являются JSON.
if($_GET['action'] == "add"){
вместоif($action == "add"){