0

我想问点什么。。

我陷入了与 jquery 结合的 sql 查询中,即 dropdown.val()..

    echo "<script type='text/javascript'>";

echo "$(document).ready(function () {

 $('#ddlstatename').change(function(){";

echo "alert ($('#ddlstatename').val());";

$result6 = mysql_query("SELECT companyname FROM tb_company com inner join tb_companyinfo std on com.stateid = std.stateid and com.companyid = std.companyid WHERE std.productid = 1 AND std.stateid = '"$('#ddlstatename').val()"'");

echo "});";

echo "});</script>";

我尝试弹出一个:echo "alert ($('#ddlstatename').val());";

它具有下拉列表中的值(dllstatename 是下拉列表 ID)..

但是当我将它插入到 sql 查询中时

$result6 = mysql_query("SELECT companyname FROM tb_company com inner join tb_companyinfo std on com.stateid = std.stateid and com.companyid = std.companyid WHERE std.productid = 1 AND std.stateid = '"$('#ddlstatename').val()"'");

我收到错误:std.stateid = '"$('#ddlstatename').val()"'"..

如何更改$('#ddlstatename').val()into sql 查询语句?

非常感谢你的帮助!

4

2 回答 2

1

PHP 是一种服务器端脚本语言,不能这样使用。否则,您可以提出 Ajax 请求!制作一个包含 mysql 查询的单独 php 文件并使用它:

$(document).ready(function () {
    $('#ddlstatename').change(function(){
    $.ajax({
        url : "file.php?state="+$(this).val(), // here name of the file in which you will save query
        method : POST,
        cache : false,
        success: function(data) { // anything echoed in php file will be stored in the variable data and you can operate with it like appending it to a div
            $("#mydiv").append(data);
        }
});

PHP文件:

$valuefromjs = $_REQUEST['state']; // you got variable containing the value of drop-down!

$result6 = mysql_query("SELECT companyname FROM tb_company com inner join tb_companyinfo std on com.stateid = std.stateid and com.companyid = std.companyid WHERE std.productid = 1 AND std.stateid = '$valuefromjs'");
于 2012-12-24T14:03:56.340 回答
0

不幸的是,您正在尝试用李子制作橙汁。

您不能在 JavaScript 中逻辑地使用 PHP。JavaScript 在浏览器级别执行,而 PHP 是基于服务器的语言。当访问页面时,PHP 将生成输出并将其发送到提供 JavaScript 的浏览器。

您需要做的是使用 JavaScript 监听下拉列表的更改,并将请求发送到服务器。一个完美的解决方案是使用jQuery.post()

为了清楚起见,您必须创建一个 PHP 页面来接收 POST/GET 请求,然后查询数据库。这将是您$.post请求的目标。

Javascript:

$.post('query.php', {dropdownval: $('#ddlstatename').val()}, function(response){
    console.log(response);
}, 'json');

PHP(查询.php):

<?php

/// mysql_connect()..

$request = json_decode($_POST['dropdownval'], true);

$result6 = mysql_query("SELECT companyname FROM tb_company com inner join tb_companyinfo std on com.stateid = std.stateid and com.companyid = std.companyid WHERE std.productid = 1 AND std.stateid = '{$request['dropdownval']}'");

die(json_encode(mysql_fetch_assoc($result6)));
于 2012-12-24T14:00:03.740 回答