javascript变量jqgrid集成中的php变量


php variable in javascript variable jqgrid integration

我有一个php函数来从mysql数据库中获取一些数据:

function get_persons() {
    $result=dbquery("SELECT id,name,surname FROM ".DB_PERSONS." ORDER BY id ASC");
    while ($person = dbarray($result)){
        $id=$person['id'];
        echo "<option value='$id'>$person['name'] - $person['surname']</option>";
    }
}

我有一个javascript代码:

$edit_buttonoptions = array("#pager", 
    array("title"=>"Takım Seç","buttonicon"=>"ui-icon-mail-open","caption"=>"Takım Seç", "onClickButton"=>"js: 
 var jspersonvar;
 jspersonvar = "<?php get_persons();?>"
function(){
    var selr = jQuery('#grid').jqGrid('getGridParam','selrow');
    var rowData = jQuery('#grid').jqGrid('getRowData', selr);
    var kelr = jQuery('#grid').jqGrid('getCell', selr, 'bilinen_adi');
    var fotograf = jQuery('#grid').jqGrid('getCell', selr, 'logo');
    if(selr)
        miktar=miktar+1,
        pp='takimlar',
        nm=pp + miktar,
        jQuery('#takimlar').append('<div id=' + nm + '>'),
        jQuery('#'+ nm +'').append('<div style=text-align:center;>'+fotograf+'<input type=hidden name=takim'+ miktar +' value=' + selr + ' />'),
        jQuery('#'+ nm +'').append('<select name=sezon'+ miktar +' id=sezon'+ miktar +'>'+jspersonvar+'</select>'),
        jQuery('#'+ nm +'').append('' + kelr + ''),
        jQuery('#'+ nm +'').append('</div>'),
        jQuery('#'+ nm +'').append('</div><br />'),
      alert('' + kelr + ' Takımı Seçildi')
    else
    alert('Lütfen Bir Takım Seçiniz!')
    return false;
    }"),
); 
$grid->callGridMethod("#grid", "navButtonAdd", $edit_buttonoptions);

它不起作用,我试过几种方法,但没有成功。。。

当服务器呈现页面时,您需要将变量放在引号中,因为它看起来像这样:

jspersonvar = <option value='$id'>......

当你在它周围有引号时,jspersonvar将被视为一个字符串,你可以用它做你想做的事。

jspersonvar = "<?php get_persons();?>"

请注意,数据库中显示的任何"都会破坏您的javascript。