2

私はこれが非常に簡単であることを知っていますが、私はこのコードに相当するDOMしか知りません。非常に長いものです。私はすでにここでいくつかの質問を積み重ねて検索しましたが、解決策を見つけることができないようです。

だから基本的に私はこのスクリプトを持っています:

function searchNow(str)
{
    $.ajax({
    url: "search.php",
    type: "POST",
    async: false,
    data:  {"search": str},
    success: function(data){
            alert("test");
            $("#result").html(data);
        }
    });
}

<table>

<tr>
    <td>Search: </td>
    <td><input type = "text" name = "search" onBlur="searchNow(this.value)">      </td>
</tr>

これにより、search.phpに検索が送信され、クエリ検索が実行され、結果が取得され、idresultに表示されます。

古いDOMajaxを使用してこれを簡単に行うことができますが、よりクリーンでおそらく高速であるため、代わりにこのjqueryバージョンを使用してみます。

私のsearch.phpで私はこれを持っています:

$search = $_POST['search'];
return $search;

悲しいことに、私は何も返すことができないようです。

いくつかの入力をいただければ幸いです。imはすでにjqueryajaxに精通し始めていますが、ページ間の操作ではなく、同じページでのみ使用できます。

ありがとう、-魔術師

4

5 に答える 5

4

PHPファイルは値を出力する必要があります。ajaxはそのページを読み、そのコンテンツを取得します。

$search = $_POST['search'];
echo $search;
于 2012-07-05T20:55:28.780 に答える
1

echo $searchではなくやりたいreturn

print_r($_POST);追加して、PHP側で何が起こっているかを確認することもできます。

それが何をしているのかを確認したら、phpスクリプトをもう少し開発できます。

// Sets the correct response type
header('Content-type: application/json');

// get your search string/query
$search = $_POST['search'];

/*
 * Do whatever you need in order to get a result
 */

echo json_encode($result);

exit;

検索クエリをデータベースに渡す場合は、PDOのNettutsの優れたイントロを必ずお読みください。セキュリティの問題/エクスプロイトにつながる可能性のある一般的な落とし穴がたくさんあります-主要なものの1つ(SQLインジェクション)を回避することは、その投稿でカバーされています。

コメントに従って、検索フィールドのあるページにjqueryが適切な場所に適切に含まれていることを確認してください(これが明らかな場合は、ひいきにするつもりはありません!)

<html>
<head>

    <title>Jquery Ajax</title>

    <!-- google nicely host jquery for free... -->
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
</head>

<body>

    <script type="text/javascript">
    function searchNow(str)
    {
        $.ajax({
            url: "search.php",
            type: "POST",
            data:  { "search": str },

            success: function(data) {
                alert("test");
                $("#result").html(data);
            }
        });
    }
    </script>

    <table>
        <tr>
            <td>Search: </td>
            <td><input type="text" name="search" onBlur="searchNow(this.value)" /></td>
        </tr>
    </table>

    <div id="results"></div>

</body>
</html>
于 2012-07-05T20:55:39.497 に答える
0

PHPファイルは値を出力する必要があります。ajaxはそのページを読み、そのコンテンツを取得します。

$search = $_POST['search'];
echo $search;

また、successオプションは、jQueryの将来のリリースで非推奨になるように設定されています。代わりに、次のように.done(callbackFunction)を使用する必要があります。

    $.ajax({
      url: 'beh.php',
      type: 'POST',
      data: {search: "beeeeeeeh"}
    }).done(function () {
      // do stuff
    })

また、特に非同期をfalseに設定している理由はありますか?

于 2012-07-05T20:56:31.683 に答える
0

Dont forget to create an HTML element with ID="result" used by the selector to contain the result printed by your search.php.

$("#result").html(data);
于 2012-07-05T21:07:06.047 に答える
0

使ってみた

type: 'GET'

そしてphpファイルで、値を次のように取得しました

$search = $_GET['search'];
echo $search;

出来た。それがあなたにとってもうまくいくことを願っています。

于 2016-10-20T04:31:05.560 に答える