【问题标题】:Using AJAX to pass data to PHP使用 AJAX 向 PHP 传递数据
【发布时间】:2016-02-24 11:32:08
【问题描述】:

我在 PHP 中有一个下拉菜单。我有一些来自数据库的字段。现在,除了那个下拉列表之外,我还有一个编辑按钮,我想在下拉列表中传递所选选项的 id!我该怎么做?

<tr>
    <td>Base INI File</td>
    <td>
        <select required  name="base_ini_id"  id="base_ini_id" class="form-control">
            <option value="">Select</option>    
            <?php foreach($base as $value) { ?>
                <option id="emp" class="specialLink" value="<?php echo $value->base_ini_filename;?>"><?php echo $value->base_ini_filename;?></option>
            <?php } ?>
        </select>
    </td>
    <?php foreach($customs as $custom) ?>
        <td>
            <?php echo btn_edit('customer/upload_ini/edit_ini_old/' . $custom->id); ?>
        </td>
        >
</tr>

看起来像这样: 如您所见,除了下拉列表之外,我在td 中有一个按钮,我想使用 AJAX 或 jQuery 将其链接到下拉列表中所选选项的 id。我不了解 AJAX,但由于需要我必须实现它。

【问题讨论】:

  • 你有没有尝试过自己解决这个问题?目前这是一个“为我编写代码问题”。这里有一些东西可以帮助您入门:api.jquery.com/jquery.ajax
  • 通过更改您的选择下拉菜单?
  • @Gopal 是的,当我更改下拉菜单时

标签: javascript php jquery ajax codeigniter


【解决方案1】:

试试这个代码。我从您的招聘中调用示例网址。随心所欲地改变

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
    <td>
    <select required name="base_ini_id" id="base_ini_id" class="form-control"> 
    <option value="">Select</option> 
    <?php foreach($base as $value) { ?> 
    <option id="emp" class="specialLink" value="<?php echo $value->id;?>"><?php echo $value->base_ini_filename;?></option> 
    <?php } ?> 
    </select> 
    </td>
    <td>
        <a id="edit_link" href=""><button>Edit</button> </a>
    </td>
    <script type="text/javascript">
        $(document).ready(function()
        {
        $('#base_ini_id').change(function() {
        var id=$("#base_ini_id").val();
        $("#edit_link").attr("href",  "customer/user/edit/"+id);
        });
        });
    </script>

【讨论】:

  • 在我的按钮中我将如何获取 id?
  • 是的,正如代码中提到的,我在下拉列表之外还有一个按钮,所以无论我从下拉列表中选择哪个值,我都想将它传递给我的按钮进行编辑
  • 所以基本上我想得到 selected 的值
  • 我想从下拉列表中获取所选选项的 ID
  • 在 btn_edit() 函数中使用这个 if(isset($_POST['id'])) { $id = $_POST['id']; }
【解决方案2】:

我建议你不要使用id,因为表中可能有多个记录。因为您的知识 id 是唯一的,但是您可以为此使用 class。

<tr>
    <td>Base INI File</td>
    <td>
        <select required  name="base_ini_id" class="form-control base_ini_id">
            <option value="">Select</option>    
            <?php foreach($base as $value) { ?>
                <option id="emp" class="specialLink" value="<?php echo $value->base_ini_filename;?>"><?php echo $value->base_ini_filename;?></option>
            <?php } ?>
        </select>
    </td>
    <td>
        <span onclick="btn_edit(this);">Edit</span>
    </td>
 </tr>

使用以下 JavaScript 函数获取所选选项

<script type="text/javascript">
 function btn_edit(control)
 {
   var selected_option = $(control).parent().prev().find('.base_ini_id').val();
   // Use selected option variable to pass data in your php file
  $.ajax({
       type: "post",
       url: "customer/upload_ini/edit_ini_old/"+selected_option ,
       cache: false,               
       success: function(change)
       {                      
          // Do here what you want...
       }
  });

 }
</script>

这里的 parent() 函数返回 $(control) 元素的父元素。

prev() 函数返回特定元素的前一个元素。

find() 函数从指定元素中查找类、id 或元素。

您可以在 selected_option 变量中获取选定的选项值

希望你得到我!

更新

使用以下代码

<tr>
        <td>Base INI File</td>
        <td>
            <select required onchange="option_change(this);"  name="base_ini_id" class="form-control base_ini_id">
                <option value="">Select</option>    
                <?php foreach($base as $value) { ?>
                    <option id="emp" class="specialLink" value="<?php echo $value->base_ini_filename;?>"><?php echo $value->base_ini_filename;?></option>
                <?php } ?>
            </select>
        </td>
        <td>
            <a href = "" class="edit_link">Edit</span>
        </td>
     </tr>

<script type="text/javascript">
function option_change(select)
{
  var selected_val = $(select).val();
  var link = "customer/upload_ini/edit_ini_old/"+selected_option;
  $(select).parent().next().find('.edit_link').attr('href', link);
}
</script>

这将在选项更改后更新编辑锚的 href 属性。如果您单击编辑而不选择选项页面将刷新只有您可以在那里管理您想要的东西..

【讨论】:

  • 我的编辑按钮在哪里?我想编辑一个文件,我需要传递我要编辑的文件的 id 那么我将如何做到这一点
  • 查看我的问题,我已经向您展示了您的代码如何给我输出,我只显示编辑,现在编辑按钮采用锚标记 i,我通过 url 和 id 来编辑记录或文件跨度>
  • 标签是您的编辑按钮。您可以使用按钮来代替它。现在您可以在从下拉列表中获取所选值后运行以下 ajax。
  • 在我的情况下我应该怎么做我的按钮看起来像这样 所以首先我传递方法然后传递 id 那么我的 id 将如何传递到这里?
  • 我应该像这样使用它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-08
  • 1970-01-01
  • 2017-11-14
  • 2019-09-15
  • 2013-12-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多