-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 コードは、ページが読み込まれるときに 1 回だけ実行されます。com_codeこれは、クリック後に JS 変数に何が含まれているかを決して知らないことを意味します。

JS 変更イベントが発生するたびに PHP コードを実行するには、Ajax と呼ばれる手法を使用する必要があります。JavaScript コードは、完全に別の PHP プログラムを呼び出す必要があります。このプログラムは、データをクエリし、JavaScript コードが動作するように結果をブラウザに返します。

この手法は十分に確立されており、jQuery には非常に使いやすい関数が用意されています。jQuery Ajax の例をいくつか調べて、そこからたどってください。

それが役立つことを願っています。

于 2013-01-10T11:06:23.053 に答える