php - 使用 Mysql 数据库中的数据自动填充输入

标签 php jquery mysql

您好,当选择 ID 时,我正在使用 JQuery 脚本填充表单上的 3 个字段。我的脚本从 3 个不同的 PHP 文件中提取数据,这使得我的脚本运行缓慢。我想知道是否有一种方法可以将我的所有 PHP 文件编译成 1 个文件,以使我的脚本更方便。

脚本

function updatefrm($name, $qty1, $price, $plink) {
var name = $("#" + $name).val();
if ($.trim(name) !='') {
    $.post('../action/subs/name2.php', {name: name}, function(data) {
        $("#" + $qty1).val(data);       
});
    $.post('../action/subs/name.php', {name: name}, function(data) {
        $("#" + $price).val(data);  
});

    $.post('../action/subs/name3.php', {name: name}, function(data) {
        $('#cimage').attr('src', '../components/mijoshop/opencart/image  /'+data);      
});

}
}

名称.php

<?php
if (isset($_POST['name']) === true && empty($_POST['name']) === false) {

require '../db/connect6.php';

$query = mysql_query("
SELECT `product`.`price` 
FROM `shop_product`
WHERE  `shop_product`.`product_id` = '".  mysql_real_escape_string(trim($_POST['name']))."'
    ");
echo (mysql_num_rows($query)!==0)? mysql_result($query,0,`price`):'price not  found';

}

?>

name1.php

<?php
if (isset($_POST['name']) === true && empty($_POST['name']) === false) {

require '../db/connect6.php';

$query = mysql_query("
SELECT `product`.`product_id` 
FROM `shop_product`
WHERE  `shop_product`.`product_id` = '".     mysql_real_escape_string(trim($_POST['name']))."'
    ");
echo (mysql_num_rows($query)!==0)? mysql_result($query,0,`product_id`):'price not found';

}

?>

name2.php

<?php
if (isset($_POST['name']) === true && empty($_POST['name']) === false) {

require '../db/connect6.php';

$query = mysql_query("
SELECT `product`.`image` 
FROM `shop_product`
WHERE  `shop_product`.`product_id` = '".       mysql_real_escape_string(trim($_POST['name']))."'
    ");
echo (mysql_num_rows($query)!==0)? mysql_result($query,0,`image`):'price not  found';

}

?>

最佳答案

更改您的 name.php 脚本,使其执行以下操作:

<?php
// empty will do isset too, so you get two for the price of one!
if (!empty($_POST['name'])) {
    require '../db/connect6.php';

    $safe_name = mysql_real_escape_string(trim($_POST['name']));

    $query = mysql_query("
        SELECT price, product_id, image
        FROM `shop_product`
        WHERE  `shop_product`.`product_id` = '". $safe_name ."'
        LIMIT 1
    ");

    if (mysql_num_rows($query) > 0) {
        $row = mysql_fetch_assoc($query);
        json($row);
    } else {
        json(null);
    }
}

function json ($array) {
    header("Content-Type: application/json");
    echo json_encode($array);
}

?>

然后将您的 JavaScript 更改为:

if ($.trim(name) !='') {
    $.post('../action/subs/name.php', {name: name}, function(data) {
        $("#" + $qty1).val(data['qty']);
        $("#" + $price).val(data['price']);
        $("#cimage").attr('src', '../components/mijoshop/opencart/image/'+data['image']);
    });
}

关于php - 使用 Mysql 数据库中的数据自动填充输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23484391/

相关文章:

php - 循环中不唯一 id 的可能性是多少

mysql - 如何查看sql_mode的具体值?

php - 使用 PHP、AJAX 和 JavaScript 的简单按钮点击计数器

php - 邮政编码半径搜索

jquery - 滚动某处后如何更改类

javascript - 为什么 Backbone.Collection 对第一个查看者显示两次?

javascript - 嵌套内容可编辑的按键事件 (jQuery)

mysql - mysql表名中通配符的使用

php - 从 mysql 获取最后 30 条记录但不是最后 1 条

php - 创建一个 HTML/PHP 链接