在这里使用几个答案我按下按钮时会将行添加到MySQL但是数据是空白的,所以我只能假设变量没有被传递。
我真的不知道自己做错了什么,非常感谢任何帮助。
PHP
<? $sql = "SELECT itemname FROM items ORDER BY itemname ASC";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
echo "<button onclick='javascript:ajaxCall(" . $row['id'] . ")'><span class='btn-text'>" . $row['itemname'] . "</span></button>";
}
?>
的jQuery
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
function ajaxCall(id){
$.ajax({
type: "POST",
url: "additem.php",
success: function(data){
// callback function
}
});
return false;
}
</script>
additem.php
// Connect database.
include("settings.php");
mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db($db_name);
$id = $_POST['id'];
$itemsearch = mysql_query("SELECT itemname, itemcategory, price, qty FROM presales WHERE id='$id'");
$itemsearchrest = mysql_num_rows($itemsearch);
$itemname = $itemsearchrest['itemname'];
$itemcategory = $itemsearchrest['itemcategory'];
$price = $itemsearchrest['price'];
$qty = $itemsearchrest['qty'];
$sql = "INSERT INTO presales (itemname, itemcategory, price, qty) VALUES('$itemname', '$itemcategory', '$price', '0')";
if(mysql_query($sql)){
return "success!";
}
else {
return "failed!";
}
?>
答案 0 :(得分:0)
mysql_num_rows返回行数。它不是一个数组。使用fetch_assoc或类似 请参阅PHP documentation中的示例! 您的AJAX调用也缺少数据:
$.ajax({
type: "POST",
url: "additem.php",
data: {
id: id
}
});
请切换到PDO或MySQLi。 MySQLi将使用相同的函数名称,但它是面向对象的。 PDO将命名功能略有不同,但基本上以相同的方式工作。