2012-12-24 13 views
0

我想問問東西..PHP - 如何插入jQuery的dropdown.val()到MySQL查詢

我已經陷在SQL查詢與jQuery這是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()成sql查詢語句?

非常感謝您的幫助!

+0

PHP的內容是服務器端,而JavaScript變量是客戶端。您必須使用表單發佈或ajax傳遞查詢的值 –

+0

您提交表單! –

回答

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(query.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))); 
+0

感謝您的回覆..但現在我使用wordpress,我如何添加php文件? – CoolTips2u

+0

看看這篇文章http://wp.tutsplus.com/tutorials/plugins/a-primer-on-ajax-in-the-wordpress-frontend-understanding-the-process/ –

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 FILE:

$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'");