【问题标题】:Get array from PHP to JS using AJAX使用 AJAX 从 PHP 获取数组到 JS
【发布时间】:2015-04-24 09:57:02
【问题描述】:

当我单击数据表中的添加新按钮时,我想创建下拉列表而不是文本框。此下拉列表值必须从数据库中检索数据。我的代码如下。

//button to add new row
function addeditRow(oTable, nRow) {
    $.ajax({
        type: "POST",
        url: "menudrop.php",
        success: function(html) {
            $("#one").append(html);
        }
    });  
    var aData = oTable.fnGetData(nRow);
    var jqTds = $('>td', nRow);
    jqTds[0].innerHTML = '';
    jqTds[1].innerHTML = '<input type="text" class="form-control input-small"  id="two" value="' + aData[1] + '">';
    jqTds[2].innerHTML = '<SELECT id="one"  name="menus"><OPTION></OPTION></SELECT>';
    jqTds[3].innerHTML = '<a class="edit" href="">Save</a>';
    jqTds[4].innerHTML = '<a class="cancel" href="">Cancel</a>';
}

menudrop.php

<?php
    require_once("database/connect.php");

    $db = new Database;
    $db->mquery('a_menus','*');
    $menus = $db->fetchdata();
    $items = array();
    foreach($menus as $ms) {
        $items[] = $ms->menu_name;
    }
    print_r($items);
?>

这是行不通的。谁能帮帮我?

【问题讨论】:

  • Select 应该有 id="one" 而不是选项并从 PHP 页面返回
  • 查看您有返回选项的 PHP 代码

标签: php jquery ajax datatable


【解决方案1】:

使用 php 函数 json_encode($items); 从 php 返回一个 json 而不是打印值

<?php
    require_once("database/connect.php");

    $db = new Database;
    $db->mquery('a_menus','*');
    $menus = $db->fetchdata();
    $items = array();
    foreach($menus as $ms) {
        $items[] = $ms->menu_name;
    }
   echo json_encode($items);
?>

在 ajax 中创建我们在成功函数中使用的选择类似于:

success: function(html) {
           $("#one").append('<select name="menus">');
           $.foreach(html,function(index,val){
                $("#one").append('<option value="'+val.id+'">'+val.name+'</option>');//assuming that in your resulting query exist a field named id and a field named name
            });
            $("#one").append('</select>');
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-30
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    • 2023-03-17
    • 1970-01-01
    相关资源
    最近更新 更多