使用AJAX将数据传递给PHP

时间:2016-02-24 11:32:09

标签: javascript php jquery ajax codeigniter

我在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>

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

2 个答案:

答案 0 :(得分:2)

试试此代码。我从您的招聘中调用样本网址。改变它你的

<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>

答案 1 :(得分:1)

我建议您不要使用id,因为表中可能有多条记录。根据您的知识,id是唯一的,但您可以使用类。

<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()函数从指定的元素中查找class,id或element。

您可以在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属性。如果您单击编辑而没有选择选项页面将只刷新您可以根据需要管理某些内容..