我用jQuery自动完成功能创建了这个表单。自动完成列表中选定的品牌需要使用$ .ajax函数发送到PHP文件。我的代码似乎不起作用,但我找不到错误。我不知道为什么数据没有插入到MYSQL数据库中。这是我的代码:
JQUERY:
$(document).ready(function() {
$("#autocomplete").autocomplete({
minLength: 2
});
$("#autocomplete").autocomplete({
source: ["Adidas", "Airforce", "Alpha Industries", "Asics", "Bikkemberg", "Birkenstock", "Bjorn Borg", "Brunotti", "Calvin Klein", "Cars Jeans", "Chanel", "Chasin", "Diesel", "Dior", "DKNY", "Dolce & Gabbana"]
});
$("#add-brand").click(function() {
var merk = $("#autocomplete").val();
$("#selected-brands").append(" <a class=\"deletemerk\" href=\"#\">" + merk + "</a>");
//Add your parameters here
var param = JSON.stringify({
Brand: merk
});
$.ajax({
type: "POST",
async: true,
url: "scripttohandlejson.php",
contentType: "application/json",
data: param,
dataType: "json",
success: function (good){
//handle success
alert(good)
},
failure: function (bad){
//handle any errors
alert(bad)
}
});
return false;
});
});
PHP文件: scripttohandlejson.php
<?PHP
$getcontent = json_decode($json, true);
$getcontent->{'Brand'};
$vraag = "INSERT INTO kijken (merk) VALUES ('$data_s')";
$voerin = mysql_query($vraag) or die("couldnt put into db");
<?
答案 0 :(得分:1)
$arr_content = json_decode($json, true);
$brand = $arr_content["Brand"];
$vraag = "INSERT INTO kijken (merk) VALUES ('" . $brand . "')";
编辑:
问题:在您的示例中,您的json_decode返回一个关联数组,因为您在函数调用中有参数'true'。但是在下一行中,您试图通过尝试访问“它的'BRAND'属性来尝试将结果用作对象。
您所要做的就是从json_decode函数调用中删除true
,或者使用上面的代码。
注意:也编辑了SQL语句。
答案 1 :(得分:0)
json_decode返回一个对象,而不是一个字符串,并且您正在尝试将其用作字符串,因此您可能在数据库中插入类似“Object()”的内容。
也许你可以做$ data_s = mysql_escape_string($ getcontent ['Brand']);然后使用$ data_s代替。
PHP文件: scripttohandlejson.php
<?PHP
$getcontent = json_decode($json, true);
$data_s = mysql_escape_string($getcontent['Brand']);
$vraag ="INSERT INTO kijken (merk) VALUES ='$data_s' ";
$voerin = mysql_query($vraag) or die("couldnt put into db");
?>
我没有检查过其他可能的错误(例如......如果这个SQL有效吗?)。
答案 2 :(得分:0)
无需将数据作为JSON发送。
在JS中更改此内容:
//Add your parameters here
var param = JSON.stringify({
Brand: merk
});
TO:
var param ={Brand: merk};
在php中将收到:
$brand= $_POST['Brand'];