输入.VAL()从列表中PHP [英] Inputting .val() from list in PHP

查看:129
本文介绍了输入.VAL()从列表中PHP的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从一个列表(listDIV)信息,以显示在我的表格(formDIV),我发现了使用JSON数据库中的信息。我只得到错误数据库埃罗,请选择别的东西。在我的textarea的领域,这使我相信有什么毛病我的PHP。

HTML和放大器; JS:

 <脚本的src =// ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js类型=文/ JavaScript的&GT ;< / SCRIPT>
<脚本类型=文/ JavaScript的>
$(文件)。就绪(函数(){
$(#PRODUCTLIST)。改变(函数(){

    变种行动= $(#productForm)ATTR(行动)。
    VAR form_data = {
        ID:$('#产品列表)VAL()。
        名称:$(#NAME)VAL()。
        价格:$(#价)VAL()。
        IMG:$(#IMG)VAL()
        说明:$(#说明)VAL()。
    };

VAR ID =东西;
    $ .getJSON(getProduct.php,form_data,功能(数据){
        开关(data.retval){
            。情况下0:$(#名称)值(data.data.prodName);
            打破;
            。默认:$(#说明)HTML(数据库错误,请选择别的东西。);
            打破;
        }
        });
    });
});
< / SCRIPT>
< /头><身体GT;

< D​​IV ID =listDIV>
<选择一个id =产品列表NAME =产品列表大小=8>
    <期权价值=123级=PRODID>终结者系列< /选项>
    <期权价值=124级=PRODID> 2001太空漫游< /选项>
    <期权价值=125级=PRODID>太湖< /选项>
    <期权价值=126级=PRODID>异形四部曲< /选项>
    <期权价值=127级=PRODID> 12只猴子< /选项>
    <期权价值=128级=PRODID>最终幻想< /选项>
< /选择>
< / DIV>< D​​IV ID =formDIV>
<形式ID =productForm行动=getProduct.php方法=邮报>
    <输入类型=文本ID =名称占位符=名称/>< BR />
    <输入类型=文本ID =价格占位符=价格/>< BR />
    <输入类型=文本ID =IMG的占位符=图像/>< BR />
    < textarea的ID =描述占位符=描述>< / textarea的>< BR />
<输入类型=提交ID =拯救值=保存/>
< /形式GT;
< / DIV>
< /身体GT;< / HTML>
 

PHP(getProduct.php):

 < PHP
ob_start()函数;
在session_start();
的mysql_connect('本地主机','根','根')或
    死亡(无法连接:mysql_error());
mysql_select_db('productDB')或
    死亡(可以\'吨使用的数据库:'mysql_error());

// RETVAL:0  -  Login好,1  - 登录失败,2  - 内部错误
$ JSON =阵列(RETVAL=> 2,数据=> NULL,调试=>中);

 $ ID = json_de code($ _ REQUEST ['身份证']);
 $ PRODID = $ ID-> ID;

$ SQL =SELECT * FROM productTB WHERE PRODID =。 $ PRODID;


$ JSON ['调试'] =SQL查询是:$ SQL\ N;。
$结果= mysql_query($ SQL);
如果(!$结果){
    $ JSON ['调试'] =SQL查询失败\ N。
    $ JSON ['调试'] =其他输出。 ob_get_contents();
    ob_end_clean();
死亡(json_en code($ JSON));
}
$计数= mysql_num_rows($结果);

如果($计数== 1){
    $ JSON ['RETVAL'] = 0;
    $ JSON ['数据'] = mysql_fetch_assoc($结果);
} 其他 {
    $ JSON ['RETVAL'] = 1;
}
$ JSON ['调试'] =其他输出。 ob_get_contents();
ob_end_clean();
回声json_en code($ JSON);
 

我的数据库表结构:

   - 
 - 表结构表`productTB`
 - 

CREATE TABLE`productTB`(
`prodID` INT(11)NOT NULL,
`prodName` VARCHAR(30)COLLATE utf8_uni code_ci NOT NULL,
`prodPrice`十进制(10,2)NOT NULL,
`prodDesc` LONGTEXT COLLATE utf8_uni code_ci NOT NULL,
`prodImg` VARCHAR(30)COLLATE utf8_uni code_ci NOT NULL,
PRIMARY KEY(`prodID`)
)ENGINE = InnoDB的默认字符集= UTF8 COLLATE = utf8_uni code_ci;
 

解决方案

您需要传递变量..不是字符串

  $ SQL =SELECT * FROM productTB WHERE PRODID =。 $ PRODID;
 

虽然我会建议使用preparedstatements

编辑:

您没有通过 ID 来你的PHP网页..下面是你可以访问 - 这是要传递到你的PHP是什么 -

修改

  VAR form_data = {
    名称:$(#NAME)VAL()。
    价格:$(#价)VAL()。
    IMG:$(#IMG)VAL()
    说明:$(#说明)VAL()。
};
 

  VAR form_data = {
    ID:$('#产品列表)VAL()//<  - 通过ID。
    名称:$(#NAME)VAL()。
    价格:$(#价)VAL()。
    IMG:$(#IMG)VAL()
    说明:$(#说明)VAL()。
};
 

您要么需要通过 ID 到页面或查询首先从DB获得 ID 。然后,您可以使用该ID在查询得到的结果

I'm trying to get information from a list(listDIV) to show up in my form (formDIV), I'm getting the information from a database using JSON. I'm only getting the error "Database erro, please select something else." in my textarea field, which leads me to believe there is something wrong with my PHP.

HTML & JS:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#productList").change(function() {

    var action = $("#productForm").attr('action');
    var form_data = {
        id: $('#productList').val(),
        name: $("#name").val(),
        price: $("#price").val(),
        img: $("#img").val(),
        description: $("#description").val()
    };

var id="something";
    $.getJSON("getProduct.php",form_data,function(data){
        switch(data.retval){
            case 0: $("#name").value(data.data.prodName);
            break;
            default: $("#description").html("Database error, please select something else.");
            break;
        }
        });
    });
});
</script>  
</head><body>

<div id="listDIV">
<select id="productList" name="productList" size="8">
    <option value="123" class="prodID">Terminator Series</option>
    <option value="124" class="prodID">2001 A Space Odyssey</option>
    <option value="125" class="prodID">Serenity</option>
    <option value="126" class="prodID">Alien Quadrilogy</option>
    <option value="127" class="prodID">12 Monkeys</option>
    <option value="128" class="prodID">Final Fantasy</option>
</select>
</div><div id="formDIV">
<form id="productForm" action="getProduct.php" method="post">
    <input type="text" id="name" placeholder="Name" /><br />
    <input type="text" id="price" placeholder="Price" /><br />
    <input type="text" id="img" placeholder="Image" /><br />
    <textarea id="description" placeholder="Description"></textarea><br />
<input type="submit" id="save" value="Save" />
</form>
</div>
</body></html>

PHP (getProduct.php):

<?php
ob_start();
session_start();
mysql_connect('localhost', 'root', 'root') or 
    die('Could not connect: ' . mysql_error());
mysql_select_db('productDB') or
    die ('Can\'t use database: ' . mysql_error());

// retval: 0 - login ok, 1 - login failed, 2 - internal error
$json = array("retval" => 2, "data" => NULL, "debug" => "");

 $id=json_decode($_REQUEST['id']);
 $prodID=$id->id;

$sql="SELECT * FROM productTB WHERE prodID=" . $prodID;


$json['debug'] .= "SQL query was: ".$sql."\n";
$result=mysql_query($sql);
if (!$result) {
    $json['debug'] .= "SQL query failed\n";
    $json['debug'] .= "Other output: ". ob_get_contents();
    ob_end_clean();
die(json_encode($json));
}
$count=mysql_num_rows($result);

if($count==1){
    $json['retval'] = 0;
    $json['data'] = mysql_fetch_assoc($result);
} else {
    $json['retval'] = 1;
}
$json['debug'] .= "Other output: ". ob_get_contents();
ob_end_clean();
echo json_encode($json);

Table Structure for my DB:

--
-- Table structure for table `productTB`
--

CREATE TABLE `productTB` (
`prodID` int(11) NOT NULL,
`prodName` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
`prodPrice` decimal(10,2) NOT NULL,
`prodDesc` longtext COLLATE utf8_unicode_ci NOT NULL,
`prodImg` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`prodID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

解决方案

You need to pass in the variable.. not the string

$sql="SELECT * FROM productTB WHERE prodID=" . $prodID;

Though I would recommend using preparedstatements

EDIT:

You are not passing ID to your php page.. Here's what you can access - These are what you are passing to your PHP -

Change

var form_data = {
    name: $("#name").val(),
    price: $("#price").val(),
    img: $("#img").val(),
    description: $("#description").val()
};

to

var form_data = {
    id: $('#productList').val(), // <-- pass the id
    name: $("#name").val(),
    price: $("#price").val(),
    img: $("#img").val(),
    description: $("#description").val()
};

You either need to Pass ID to the page or query to get the ID first from the DB. Then you can use the ID in your query to get the results

这篇关于输入.VAL()从列表中PHP的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆