在js块中调用PHP代码

时间:2012-03-27 16:07:55

标签: php jquery javascript-events

我一直在尝试从数据库中提取数据并填写由Java脚本生成的下拉列表。然而,PHP代码似乎根本不起作用。 以下是我正在使用的代码段:

<script type="text/javascript">
    $(document).ready( function () {$('#mainTable').dataTable({}).makeEditable({
   "aoColumns": [
{
    indicator: 'Saving Items...',
    tooltip: 'Click to select Items',
    loadtext: 'loading...',
    type: 'select',
    onblur: 'submit',
    <?php
        $item_set = get_all_items();
    while($item = mysql_fetch_array($item_set)){
      ?>
       data: "{'0':'Please select...', '1':'A'+' <? echo $item["item_desc"] ?> '}",
    <?php
        }
    ?>
      sUpdateURL: function(value, settings){
   alert("Custom function for posting       results");
   return value;
 }
 },                 
 {
 }
 ]
 });
} );

我已经在一个简单的HTML表单中尝试了代码,它运行得很好。顺便说一下,我使用的是jquery可编辑数据表  http://code.google.com/p/jquery-datatables-editable/wiki/Overview

我只想用来自DB的数据填充选择菜单。任何帮助表示赞赏。

以下是生成的页面: 我是表格的第一列,下拉列表还必须包含来自DB的项目描述。

问候。

2 个答案:

答案 0 :(得分:1)

查看您的HTML源代码。您会看到您有多条data行。使用json_encode将数组转换为Json,而不是尝试将它们串在一起。

<?php
    $item_set = get_all_items();
    while($item = mysql_fetch_array($item_set)){
        $items[] = $item['item_desc'];
    }
?>

data: <?php echo json_encode($items); ?>,

答案 1 :(得分:0)

看起来你在错误的地方循环。您的循环将多次创建“数据”属性。也许你想要这个:

onblur: 'submit',
data: "{'0':'Please select...', <?php 
$item_set = get_all_items();
$count = 1;
while($item = mysql_fetch_array($item_set)){
    echo "'".$count."':"
    echo "'".$item["item_desc"]."',";
}?> }",
sUpdateURL: function(value, settings){...