0

私のスクリプトは、ajax_test.php で PHP 関数を呼び出すことができないようです。ドロップダウン ボックスが変更されたときに、php 関数の呼び出しを実行しようとしています。私のhtmlページはindex.phpです。コードは以下です。誰でも私を啓発できますか?index.php

<script>
$(document).ready(function(){
$("#cm").change( 
function ()
{
    var xmlhttp;
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    //code goes here
    xmlhttp.onreadystatechange=function()
     {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            var test = $.ajax
            ({ 
            type: "POST",
            url: "ajax_test.php",
            dataType: "json",               
            }).done(function(){
                document.getElementById("box").innerHTML = xmlhttp.responseText;
            });
        }
     }
    xmlhttp.open("POST","ajax_test.php",true);
    xmlhttp.send();
});
});
</script>
<div>
<div id="box"><p>a</p></div>
<form>
<select id="cm">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>
</form>

ajax_test.php

<?php
function hey(){
    echo '<p>hey</p>';
}
?>
4

3 に答える 3

1

jquery を使用している場合は、jquery 関数に固執する必要があります。変更機能を以下のコードに置き換えてみてください。

$("#cm").change( 
   function (){
    $.ajax({ 
        type: "POST",
        url: "ajax_test.php",
        dataType: "json"               
        }).done(function(data){
            $("#box").html(data);
        });
   }
 });

また、正しい dataType を送信していることを確認してください。サーバーがapplication/jsonajax 呼び出しの応答タイプを返すかどうかを確認します。

hey()PHPスクリプトで関数を定義するだけでなく、呼び出す必要もあります。

于 2013-10-16T03:37:33.540 に答える
0

ライブラリが不足していると思います。追加

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
</script>

スクリプト開始前。ここでは 1.8.3 を使用しています。最新のものを使用できます。ググるだけです。

于 2013-10-16T03:42:27.197 に答える