0

PHP フォームから値をロードし、結果を同じファイルの div に表示する関数が必要です。

以下のコードを含むPHPファイルのフォームがあります:

<?php

 echo "<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js'></script>";
echo"<script type='text/javascript' src='script.js'></script>";


echo"<form method='post' action=''  >";
echo " <select name='mat'><option value=''>Choose: </option>";
echo"<option >hello</option>";
echo"</select>";
echo"<input type = 'submit'  value='next' onclick='submit();' />";
echo"</form>";

echo"<div id ='result'> </div>";
?>

の関数script.jsは次のとおりです。

function submit() {
    $(function () {
        var mat = "mat";
        var dataString = 'mat=' + mat;
        $.ajax({
            type: "POST",
            url: "check.php",
            data: dataString,
            success: function (res) {
                goToByScroll("result");
                $('#result').html("<br><br><br><br><br><br><br><br><br><br>").hide().fadeIn(2500, function () {
                    $('#result').html(res + "<br /><br /> Finished");
                });
            }
        });
        return false;
    });
}

値をcheck.phpロードするのは次のとおりです。

<?php 
function safe($value)
{
    htmlentities($value, ENT_QUOTES, 'utf-8');
    return $value;
}
if (isset($_POST['mat'])) {
    $mat = safe($_POST['mat']);
    echo ($mat);
}
elseif (!isset($_POST['mat'])) {
    header('Location: error?mat=notfound');
} ?>

しかし、最初の PHP ファイルで [次へ] をクリックしても何も表示されません。エラーを見つけることができますか?

4

1 に答える 1

0

$(function(){ ..関数内で実行していませんsubmit。これを取得するには、その行を削除する必要があります。

function submit() {
    var mat = "mat";
    var dataString = 'mat=' + mat;
    $.ajax({
        type: "POST",
        url: "check.php",
        data: dataString,
        success: function(res) {
            goToByScroll("result");
            $('#result').html("<br><br><br><br><br><br><br><br><br><br>").hide().fadeIn(2500, function() {
                $('#result').html(res + "<br /><br /> Finished");
            });
        }
    });
    return false;
}
于 2013-09-01T13:52:32.057 に答える