代码之家  ›  专栏  ›  技术社区  ›  shevski

php和javascript设计

  •  0
  • shevski  · 技术社区  · 14 年前

    现在每个表都有一个带有输入标记的表单,每个表都有id=“field\u from\u table”


    GLOBAL\u FIELDS=该表中字段的名称
    GLOBAL\u ID=表的ID值。

    每个字段都有一个im标签。

    我想获取/设置这些输入标记。

    现在它的设计是这样的:

        <script>
        function get()
        {
        id=GLOBAL_ID
        $.post("handle.php",{type:"get",tablename:GLOBAL_TABLE,fields:GLOBAL_FIELDS,id:GLOBAL_ID),function(data)
        {
           fieldValues=/*javascript explode data*/;
           foreach(/*array of fields as idx=>fieldName*/)
               {$("#"+fieldName)=fieldValues[idx];}
        }
        function set()
        {
        /*for each GLOBAL_FIELDS as idx=>fieldName
          values[fieldName]=$("#"+fieldName).val;
        */
    
        valuesI=/*implode values*/;
        $.post("handle.php",{type:"set",tablename:GLOBAL_TABLE,fields:GLOBAL_FIELDS,values:valuesI),
          function(data)
            {
            if (data!=null) alert ("error");
            }
        }
    </script>
    

    句柄.php将信息更新到表和字段中。 或选择并输出CSV。

    问题是我需要从php输出一个字段列表,以便javascript可以使用它 我不认为这样使用javascript是个好主意

    一个好的回答或建议是非常感激的。

    1 回复  |  直到 14 年前
        1
  •  0
  •   andres descalzo    14 年前

    试试这个:

    <script>
    
        function get()
        {
    
            $.post("handle.php",{type:"get",tablename:GLOBAL_TABLE,fields:GLOBAL_FIELDS),function(data)
                {
                   var fieldValues = data.split(','), 
                       fieldNames = GLOBAL_FIELDS.split(',');
    
                   for(var ind = 0; ind < fieldNames.length; ind++) {
                        $("#"+fieldName[ind])=fieldValues[ind];
                   }
                }
            }); 
        }
    
        function set()
        {
             var fieldValues = "", 
                 fieldNames = GLOBAL_FIELDS.split(',');
    
             for(var ind = 0; ind < fieldNames.length; ind++) {
                    valuesI += ((fieldValues.length == 0) ? "" : ",") + unescape($("#"+fieldName[ind]).val());
             }
    
            $.post("handle.php",{type:"set",tablename:GLOBAL_TABLE,fields:GLOBAL_FIELDS,values:valuesI), function(data) 
                {
                if (data!=null) 
                    alert ("error");
              }
            }); 
        }
    </script>