2013-03-13 68 views
1

在下面的PHP代碼中,我想從我的jQuery腳本中訪問存儲在$ val變量中的值,以便能夠發送ajax調用。 對於每個錶行$ val將包含唯一值,我需要訪問唯一的 值能夠發送到我的發佈請求。如何在JQuery中訪問php數據?

   <?php 
       if($batch_query != null){ 
        $i = 0; 
        foreach($batch_query->result_array() as $row){ 
        $val = "'".$row['course_id'].",".$row['center_id'].",".$row['batch_id']."'";//These values are coming from the server side and I need to send it to the controller for the Ajax. 
        echo "<tr>"; 
         echo "<td>".$row['course_name']."</td>"; 
         echo "<td>".$row['center_name']."</td>"; 
         echo "<td>".$row['batch_name']."</td>"; 
         echo "<td>"."<button id= \"btnnumber_$i\" class='btn info toggler' value=$val>Show Info <i class='icon-arrow-down'></i></button>"."</td>";// here I am using the value attribute and assigning it the value $val. 
        } 
       } 
        ?> 

這裏是我的JQuery

 $(function(){ 
      $.post('/path /to/ my /controller', {value: $val}).done(function(data){ 

     }); 
     }); 

     How to get those values in the $val ? 

任何幫助將得到高度讚賞。

+0

它只是一個字符串,對不對? – Samy 2013-03-13 09:01:58

+0

$ .post('/ path/to/my/controller',{value:<?php echo $ val;?>}) – Pete 2013-03-13 09:02:52

+0

@Samy是它只是一個字符串的東西。 – 2013-03-13 09:03:12

回答

2

我會改變的按鈕,它把$val成數據屬性,像這樣:

"<button id=\"btnnumber_" + $i +"\" class=\"btn info toggler\" data-value=\"" + $val + "\">Show Info <i class=\"icon-arrow-down\"></i></button>" 

然後我就你的jQuery更改爲類似

$('button').click(function() { 
    $.post('/path /to/ my /controller', 
    {value: $(this).data('value')}).done(function(data){ 

    }); 
}); 

這裏是點擊按鈕獲取數據值屬性的小提琴例子:http://jsfiddle.net/T7cJR/

+0

即使每個按鈕單擊有多行,它也會發送唯一值。 – 2013-03-13 10:00:45

+0

這將發送每行的唯一值,因爲它發送與該行關聯的$ val - 查看原始的foreach循環,將$ val放入每個按鈕中 – Pete 2013-03-13 10:02:15

+0

是Pete我想將唯一的$ val與每個按鈕相關聯並希望通過按鈕點擊函數中的$ .post()發送這些值。 – 2013-03-13 10:07:14

1

將它們作爲javascript變量寫在頁面上。

+0

如何做到這一點,對不起,我是一個新手。請不要介意。 – 2013-03-13 09:02:38

+1

Google是你的朋友。 – Tetaxa 2013-03-13 09:05:13

+0

當然是的。但我也算你爲朋友。 – 2013-03-13 09:06:17

6

jQuery中的更好的方法是..

$(function(){ 
    var btnvalue=$('button.info').attr('value'); 
    $.post('/path /to/ my /controller', {value: btnvalue}).done(function(data){ 

    }); 
}); 

,最簡單的(如果你有單獨的.js文件中這是不可能的)...

var btnvalue= <?php echo $val ?> 
$.post('/path /to/ my /controller', {value: btnvalue}).done(function(data){ 

    }); 
+0

感謝您想詳細說明爲什麼這比通常的<?php echo $ val?>好,請。謝謝 – 2013-03-13 09:15:20

+0

我已經在我的答案中提到了它......如果你的腳本是在單獨的.js文件中說script.js ...你不會被允許在那裏使用''... :)(儘管在你的情況下,它看起來像你在同一個文件中有腳本),即使你的腳本在單獨的文件中,第一個也會工作。 .. – bipen 2013-03-13 09:17:04

+0

我的php和jquery是在同一頁和早些時候我也做過同樣的<?php echo $ val?>。但是審查我的代碼的人說它會導致錯誤。 – 2013-03-13 09:18:53

1

如果你的jQuery是在您可以使用下面的相同頁面。

$(function(){ 
     $.post('/path /to/ my /controller', 
     {value: <?php echo $val?>}).done(function(data){ 

    }); 
    }); 
+0

如果您的郵政調用是在單獨的文件中。您可以將值存儲在隱藏值中,並在調用時調用獲取值。$ postpos – Samy 2013-03-13 09:05:52

+0

如果存在是表中的多行,然後我被告知(這就是讓我困惑的)$ val將包含最後一行的值。 – 2013-03-13 09:09:04

+0

您需要哪種價值?你需要發送所有行的詳細信息嗎? – Samy 2013-03-13 09:17:31

1

使用方法如下:<?php echo $val; ?>

$.post('/path /to/ my /controller', {value: <?php echo $val; ?>}).done(function(data){ 

您需要這條線之前的值賦給這個變量。

1

編寫代碼以獲取$ var變量中的所有值。然後,在腳本標籤中頁的末尾,寫這個

$(function(){ 
      $.post('/path /to/ my /controller', {value: <?php echo $val ?>}).done(function(data){ 

      }); 
}); 
1

可以保存數據,TR屬性然後用jQuery訪問:

<?php 
if($batch_query != null){ 
    $i = 0; 
    foreach($batch_query->result_array() as $row){ 
     $val = "'".$row['course_id'].",".$row['center_id'].",".$row['batch_id']."'";//These values are coming from the server side and I need to send it to the controller for the Ajax. 
     echo "<tr id='".$val."'>"; 
     ...   
+1

謝謝Alireza。這很有幫助。 – 2013-03-13 13:32:30