2015-02-24 53 views
0

我試圖從數據庫中查詢,以使用php/mysql和jquery獲取基於其國家/地區的用戶列表。 我有一個mysql查詢,在選擇選項字段中提取國家表單數據庫。在此之後,我把一個jQuery代碼自動根據所選國家的用戶獲得表格。這是代碼是如何jQuery的樣子:無法將jQuery變量集成到php中

<script> 
$("#tara") 
.change(function() { 
var str = ""; 
$("select option:selected").each(function() { 
str += "<table class='table table-bordered table-striped'>" + 
"<thead><tr><th><p><?php echo _('Tara');?></p></th></tr></thead>" + 
"<tbody>" + 
"<?php 
$variabilatara = 182; 
$test = mysql_query("SELECT * FROM utilizatori WHERE idt='$variabilatara'") ?>" + 
"<?php while($row=mysql_fetch_object($test)) 
{ 
echo "<tr>"; 
echo "<td><p>$row->nume</p></td>"; 
echo "</tr>"; 
} 
?>" + $(this).val() + " "; 
}); 
$("#testare").html(str); 
}) 
.change(); 
</script> 

我的問題是:如何把$(本).VAL()到PHP,而不是$ variabilatara,所以它看起來是這樣的:$ variabilatara = $(這個).val();和SQL查詢將修改所選國家的變化。謝謝!

+0

您不能直接一個jQuery或JavaScript變量傳遞到PHP變量,你必須在另一個頁面上創建php腳本,然後使用ajax發佈到該頁面,並獲得結果。 – Djip 2015-02-24 16:24:15

+1

php和javascript運行在不同的環境和不同的時間。你需要更好地理解這一點。 php運行在服務器上,javascript在瀏覽器中 – charlietfl 2015-02-24 16:25:16

+0

Javascript是一種客戶端語言,而php是服務器端語言。他們不適合......至少不是直接的。檢查什麼是AJAX請求:)。此外,mysql_ *原型是**棄用**,請使用mysqli_ *或PDO(請查閱官方PHP文檔) – briosheje 2015-02-24 16:25:50

回答

0

你想要做的就是所謂的AJAX。聽起來很複雜,但事實並非如此。請參閱這些示例以獲得簡單的解釋。不要只看他們 - 複製/粘貼到您的服務器,並使其工作。更改值。看看它是如何工作的 - 非常簡單。

A simple example

More complicated example

Populate dropdown 2 based on selection in dropdown 1


你的代碼是有點困難,我搞不懂,但應進行重構是這樣的。 (我不確定strTara在代碼中的位置,但我相信你可以從這裏弄清楚)。

使用Javascript/jQuery的:

var strTara = <?php echo _('Tara');?> 

$("#tara").change(function() { 
    selVal = $(this).val(); 
    $.ajax({ 
     type: 'post', 
     url: 'another_php_file.php', 
     data: 'variabilatara=' + selVal, 
     success: function(data){ 
      var tblHead = " 
       <table class='table table-bordered table-striped'> 
        <thead><tr><th><p>strTara</p></th></tr></thead><tbody> 
      "; 
      $("#testare").html(tblHead + data); 
     } 
    }); 
}); 

another_php_file.php:(你的PHP AJAX處理器文件)

<?php 
    $var = $_POST['variabilatara']; 
    $out = ''; 

    $result = mysql_query("SELECT * FROM utilizatori WHERE idt='$variabilatara'") or die(mysql_error()); 
    while($row=mysql_fetch_object($result)){ 
     $out .= "<tr>"; 
     $out .= "<td><p>" .$row->nume. "</p></td>"; //<== fixed 
     $out .= "</tr>"; 
    } 
    $out .= '</tbody></table>'; //<== fixed 
    echo $out; 
?>