-1

選択オプションで新しいオプションを選択するたびに、いくつかのテキストフィールドを変更しようとしています。これは私が現在持っているコードです、私が間違っているところはありますか?ありがとう。

        <script type="text/javascript">
            $("#combo").change(function() {
            var value = $(this).val();
            $.get(document, {type: value});
            });
        </script>


        <td class="bold"><label for='addType'>Select Type to Add : </label>
            <select name="addType" id="combo">
                <option value="book">Book</option>
                <option value="author">Author</option>
                <option value ="publisher">Publisher</option>
                <option value="customer">Customer</option>
            </select>
        <?php
            $type['type'] = $_GET['type'];
            if ($type['type'] == 'author') {
                print "test";
            }
        ?>
4

3 に答える 3

0

$.get 関数は次のようになります。

 $.get("php_page.php", 
       {type: value},
       function(data) {
             $("#response").html(data)
      );

</select>戻り値を表示するID「response」のdivを配置した後:

 <div id="response">
 </div>

あとは、同じディレクトリ ("php_page.php") に $.get AJAX リクエストを処理する 2 つ目のページを作成するだけです。

<?php
      echo $_GET['type'];
?>

ご存じないかもしれませんが、PHP はサーバー側の言語です。これは、ページが読み込まれると、PHP はすでにその作業を完了していることを意味します。したがって、ページがロードされた後に特殊な PHP 機能を使用する必要がある場合、それが AJAX の目的です。

于 2012-05-03T21:35:39.457 に答える
0

あなたはこれを完全に間違った方法でやっています!! jQueryのajaxについてはマニュアルを読んでください。

プロジェクトの開始を支援するためだけに:

PHPファイルから取得したい応答から基本構造を分離する必要があります。このデモをご覧ください

HTML 部分は次のとおりです。

<select name="addType" id="combo">
    <option value="book">Book</option>
    <option value="author">Author</option>
    <option value ="publisher">Publisher</option>
    <option value="customer">Customer</option>
</select>
<div>Response: <span id="selection"></span></div>

これも PHP で埋めることができますが、応答ではありません!

JavaScript は次のとおりです。

$("#combo").change(function() {
    $.ajax({
        url: "/echo/html/",
        type: "POST",
        data: {"html":"Yeah: "+$(this).val()+" is cool!"},
        success: function(data) {
            $("#selection").html(data);
        }
    });
});​

これを追加のファイルに入れればいいでしょう。

最後になりましたが、URL で指定された「PHP ファイル」/echo/htmlは次のことを行います。

<?php
  echo $_POST["html"];
?>

お役に立てれば。

于 2012-05-03T21:39:20.267 に答える
0

まず、このセクション:

<?php
    $type['type'] = $_GET['type'];
    if ($type['type'] == 'author') {
        print "test";
}?>

ページが最初にロードされたときにのみ印刷され、type=xxx が URL クエリ文字列に含まれている場合にのみ印刷されます。コードはサーバー側であるため、ロード後にページ自体で PHP を実行することはできません

jquery 部分については、次を試してください。

$(document).ready(
    function(){
        $('#combo').change(function(){doAjax();});
    }
);
function doAjax(){
    $.get(
        'url', //i think jquery defaults to self if not url is given but you can also use <?php echo $_SERVER['PHP_SELF'];?>
        {'type' : $('#combo').val()},
        function(data){
                // what should the ajax call do with the response data?
        },
        "html"
    );
}

また、返されたデータを .html() で配置する div を作成する必要があります。これは、その上の最後の要素の最後に応答を追加するよりもはるかに簡単です。

于 2012-05-03T21:48:39.283 に答える