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

如何使用AJAX/jQuery将表单输入字段的值传递给脚本?

  •  1
  • Naveed  · 技术社区  · 14 年前

    index.php

    <script type="text/javascript" src="jquery-1.4.2.js"></script>
    <script type="text/javascript" src="ajax.js"></script>
    
    <select id="dropdown_id">
    <option value="one.php">One</option>
    <option value="two.php">Two</option>
    </select>
    
    <div id="workspace">workspace</div>
    

    $arr = array ( "workspace" => "One" );
    echo json_encode( $arr );
    

    $arr = array( 'workspace' => "Two" );
    echo json_encode( $arr );
    

    JS公司

    jQuery('#dropdown_id').live('change', function(event) {
        jQuery.getJSON($(this).val(), function(snippets) {
            for(var id in snippets) {
                // updated to deal with any type of HTML
                jQuery('#' + id).html(snippets[id]);
            }
        });
    });
    

    以上代码工作正常。当我从下拉列表中选择一个时one.php 使用JSON加载到workspace DIV中。当我选择两个的时候two.php 在工作区分区中加载。

    Now I want to add another dropdown in index.php:
    <select id="myinput" name="alpha">
      <option value="a">a</option> 
      <option value="b">b</option>
      <option value="a">c</option>
      <option value="b">d</option>
    </select>
    

    当用户从第一个下拉列表中选择任何选项时,该脚本(值)应该在workspace DIV中加载第二个下拉列表的值。

    例如:

    当我选择 从第一个下拉列表开始,然后:

    one.php

    $arr = array ( "workspace" => $_GET['alpha'] ); // Should load 'a'
    echo json_encode( $arr );
    

    b 从第二个下拉列表开始:

    one.php

    $arr = array ( "workspace" => $_GET['alpha'] ); // Should load 'b'
    echo json_encode( $arr );
    
    2 回复  |  直到 14 年前
        1
  •  1
  •   Amirouche Douda    11 年前

    我希望它能帮助您:

    one.php

    $arr = array ( 'workspace' => 'One');
    if(isset($_GET['myinput_val']))
    {
         $arr['workspace'] = $_GET['myinput_val'];
    }
    echo json_encode( $arr );
    

    JS公司

    $('#myinput').live('change', function(event) {
    $.getJSON("one.php", { myinput_val: $(this).val() } , function (snippets) {
        for(var id in snippets) {
            // updated to deal with any type of HTML
            $('#' + id).html(snippets[id]);
        }
    });
    });
    
        2
  •  0
  •   Matt user129975    14 年前

    比如说:

    $('#mypage').bind('change', function () {
        var self = $(this);
    
        $('#workspace').load('/' + self.val(), {
            input: $('#myinput').val();
        });
    });
    

    <?php echo $_POST['input']; ?>