我开始使用jquery和Ajax函数。
我创建了一个包含多行的表的网站,这些行是使用php从数据库加载的。现在当我点击编辑按钮时显示这个字段的信息。为了得到它,我已经阅读了最好的方法是使用ajax。
在这个jquery代码中,这个想法是循环每个单元格,当单元格是codigo时,每个单元都退出循环,并在ajax函数的post方法中设置该值。
我的代码:
$('#edit').on('show.bs.modal', function (event) {
var $button = $(event.relatedTarget) // Button that triggered the modal
var row = $button.closest("tr"), // edit button is in the same row as data you want to change
$tds = row.find("td"); // get all table cells in that row
var cod;
$.each($tds, function(index,value) {
var field = $(this).data("field");
if (field == 'codigo'){
cod = $(this).text();
return false;
}
});
alert(cod);
$.ajax({
method: 'POST',
dataType: 'json',
url: 'queryProduct.php',
data: {codigo: cod}
}).done(function(response){
response = JSON.parse(response);
// Here get the values of the JSON
});
var src_value = $tds.closest("td").find('img').attr('src'); // Get attrib src de img and set to a modal window element
$('[name="imagen"]').attr("src",src_value);
});
queryProduct.php
<?php
session_start();
if(isset($_SESSION['username']) and $_SESSION['username'] <> ''){
include("functions.php");
include("tools.php");
$conn = Conectarse("localhost", "5432", "dbname", "dbuser", "dbpass");
$codigo = $_POST['codigo'];
echo $codigo;
$query = "SELECT * FROM produccion.ma_producto WHERE codigo={$codigo}";
$result = pg_query($conn, $query);
if ($result == TRUE) {
echo json_encode($result);
} else {
echo "Error query: " . $conn->error;
}
$conn->close();
} else{
?><p>La sesión no está activa, por favor ingrese <a href="login.php">aquí</a></p>
<?php
}?>
问题是来自开发者控制台在queryProduct.php中显示错误消息我不确定问题是将代码变量发送到方法帖子:(
显示来自开发者控制台的错误消息:
答案 0 :(得分:0)
将您的数据更改为:
data: {codigo: cod}. // since your cod is already a variable
答案 1 :(得分:0)
问题在于php的pg命令。
通常我使用的是mysql数据库,在我的代码中是一个mysql命令。
现在它正在工作:
if (!$result) {
echo "Error query: " . pg_last_error($conn);
} else {
echo json_encode($result);
}
pg_close($conn);