-1

我有这个代码select name=client

在 jQuery 的帮助下,我想填充我的文本框和其他字段。这select有助于我改变我的客户选项。

因此,例如,我单击选择我将选择客户端 B。之后它将填充文本框和其他字段。信息来自数据库。

我的代码是否正确,我在这里发布问题,因为我不知道为什么我的代码不起作用。

我的 jQuery 代码

<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function(){  

    jQuery('select[name=client]').change(function(){
        var com_code = jQuery(this).val();

        <?
        $getClient = "SELECT * FROM jon_com_for";
        $getClient .= "WHERE com_code=";
        $getClient .= "'com_code'";

        $setClient = SET_SQL( $getClient );
        ?>

        jQuery('input[name=com_code]').val( '<?=$setClient['com_code'];?>' );
        jQuery('input[name=set]').val( '1' );
        jQuery('input[name=company_name_for]').val( '<?=$setClient['company_name_for'];?>' );
        jQuery('input[name=street_name]').val( '<?=$setClient['street_name'];?>' );
        jQuery('input[name=post_code]').val( '<?=$setClient['post_code'];?>' );
        jQuery('input[name=city]').val( '<?=$setClient['city'];?>' );
        jQuery('input[name=country]').val( '<?=$setClient['country'];?>' );

    });
});

</script>

我的 html 代码这个 html 在一个对话框中。

<div id="dialog" title="Step 1">
    <form id="submit_steps" method="POST" action="new-template.php">
    <input type="hidden" name="user_code" value="<?=$_SESSION['user_code'];?>" />
    <input type="hidden" name="com_code" value="<?=comucode();?>" />
    <input type="hidden" name="footnote" value="1" />
    <input type="hidden" name="set" value="1" />

    <div style="margin:20px auto;">

    <label for="client">Selecteer klant : </label>

    <select name="client">
    <?php
    $list_of_client = mysql_query( "SELECT * FROM jon_com_for" ) or die ( mysql_error() );
    while( $row = mysql_fetch_array( $list_of_client ) ) {
        echo '<option value="'.$row['com_code'].'">'.$row['company_name_for'].'</option>';
    }
    ?>
    </select>
    </div>

    <table cellpadding="3" cellspacing="0" width="100%">
      <tbody>
        <tr>
          <td align="right" valign="middle">BEDRIJFSNAAM :</td>
          <td><input name="company_name_for" size="30" id="company_name_for" class="input" type="text" /></td>
        </tr>
        <tr>
          <td align="right" valign="middle">ONDERWERP VAN OFFERTE :</td>
          <td><input class="input" name="sub_quo" id="sub_quo" size="30" type="text" /></td>
        </tr>
        <tr>
          <td align="right" valign="middle">STRAAT :</td>
          <td><input class="input" name="street_name" id="street_name" size="30" type="text" /></td>
        </tr>
        <tr>
          <td align="right" valign="middle">Postcode :</td>
          <td><input class="input" name="post_code" id="post_code" size="30" type="text" /></td>
        </tr>
        <tr>
          <td align="right" valign="middle">STAD :</td>
          <td><input class="input" name="city" id="city" size="30" type="text" /></td>
        </tr>
        <tr>
          <td align="right" valign="middle">LAND :</td>
          <td><input class="input" name="country" id="country" size="30" type="text" /></td>
        </tr>
      </tbody>
    </table>
    <div align="center">
        <input type="submit" name="save_client_prof" value="Opsslaan" /> or <a href="?c=cprof" id="cancel">Annuleren</a></p>
    </div>
    </form>
</div>

我把PHP放在jQuery里面对吗?

对不起,代码 也更新了,我的对话框也不再起作用了。

这是我更改的代码谢谢大家...

<script type="text/javascript">
$(function(){   
    $('select[name=clientx]').change(function(e){
        $('<img src="images/ajax-loader.gif" id="loading" style="width:auto;" />').appendTo("#client_details");
        //Cancel the link behavior
        e.preventDefault();
        //Get the A tag
        var com_code = $('select[name=clientx]').val();
        var dia = jQuery( 'input[name=dia]' ).val();

        $.ajax({
            type:"GET",
            url:"forms/company.php",
            data: {dia: dia, com_code: com_code},
            dataType: 'html',
            target: '#dialog',
            success: function(data){
                $("#client_details").find('img#loading').remove();
                $("#client_details").html(data);
            }
        })
    }); 

});
</script>
4

1 回答 1

1

将 PHP 代码放在 jQuery 更改事件中并不意味着 PHP 代码在更改事件发生时运行。

以这种方式编写的 PHP 代码仅在页面加载时运行一次。这意味着它永远不会知道com_code点击后 JS 变量包含什么。

为了在 JS 更改事件发生时执行 PHP 代码,您需要使用一种称为 Ajax 的技术。您的 javascript 代码需要调用一个完全独立的 PHP 程序,该程序将查询数据并将结果返回给浏览器以供 javascript 代码使用。

这种技术已经很成熟了,而且 jQuery 提供了使它非常容易使用的功能。查找一些 jQuery Ajax 示例,然后从那里开始学习。

希望有帮助。

于 2013-01-10T11:06:23.053 回答