我正在使用mySQL数据库和PHP在wordpress中使用datatables.net编辑器。
我已经创建了一个数据表表格和表单来添加/编辑共享交易(买或卖)。选择股份时,我需要创建一个ajax调用以获取所选stock_id的股票价格,并将其值默认设置为表单上的价格可编辑字段和/或表单上单独的不可编辑字段。
为了将数据(在这种情况下,股票价格)写入表格上的适当字段,我无法从PHP服务器脚本向客户端获取JSON数据。
我正在从客户端向服务器传递stock_id,服务器脚本正在连接到数据库,以JSON格式为stock_id创建价格数据,如果需要,我可以轻松更改数据格式,我的问题是如何将价格返还给客户端并将其显示在表单上。
table: "#stock_transactions",
fields: [ {
label: "type:",
name: "dm_transactions.transaction_type",
type: "select",
placeholder: "Select a type"
}, {
label: "stock:",
name: "dm_transactions.stock_id",
type: "select",
placeholder: "Select a stock"
}, {
label: "quantity:",
name: "dm_transactions.quantity"
}, {
label: "price:",
name: "dm_transactions.price"
}, {
.....等等
editor.dependent(
'dm_transactions.stock_id', function ( val, data, callback ) {
$.ajax( {
url: '../../Editor-PHP-1.8.1/controllers/ajax_transactions_stockinfo.php',
dataType: 'json',
// pass stock_id value to server php script
data: { "stock_id": val },
success: function ( json ) {
callback( json );
}
} );
} );
editor.dependent('dm_transactions.stock_id', function ( val, data, callback ){
return { messages: { 'dm_transactions.stock_id': editor.field('dm_transactions.stock_id','dm_transactions.stock_id').val() }};
},{
event: 'keyup change'
});
ajax_transactions_stockinfo.php
... end of server script
$result = $pdo->query("SELECT id, symbol, name, price FROM
dm_stocks WHERE id = $stock_id");
foreach ($result as $row) {
echo "" . $row['id'] . "";
echo " : " . $row['symbol'] . "";
echo " : " . $row['name'] . "";
echo " : " . $row['price'] . "\n";
array_push( $stock_arr, array('label'=>$row['symbol'], 'value'=>$row['price']) );
}
$temp = array('symbol'=>$stock_arr);
$json = array('options'=>$temp);
echo json_encode($json);
?>
选择股票时的JSON响应
the value of stock_id is :3:
Connected successfully
3 : ADM.L : Admiral Group : 2037
{"options":{"symbol":[{"label":"ADM.L","value":"2037"}]}}
我需要 在选择dm_transactions.stock_id值传递给服务器时,完成 服务器脚本查询stock_id以获取dm_stocks.price,已完成 服务器创建包含价格的JSON文件,尽管完成,但精确的JSON格式可能错误 客户端获取JSON数据并默认显示在表单dm-transactions.price字段上,不起作用
非常感谢任何帮助。
感谢科林