1

だから私がする必要があるのは、ajax を使用してテキスト ボックスから名前を取得し、それを php スクリプトに送信してから、php の結果を出力することだけです。

これが私がこれまでに持っているものです:

<form action="" method="POST">
    Are you in the deathnote? <br/>
    Name: <textarea type="text" name="checkname"></textarea> 
    <input type="submit" value="Submit" onclick="namecheck()">
</form>
<div id="coddisp"> Nothing yet </div>

そして、ここに私が持っているajaxがあります:

<script>
function namecheck() {
    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");
    }
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("coddisp").innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET", "check.php", true);
    xmlhttp.send();
}
</script>

PHPスクリプトで行われるのは、「checkname」というテキストボックスの名前でSQLデータベースをクエリし(POSTを使用)、その名前に関連する段落をエコーすることだけです。徹底的なテストを通じて、php スクリプトが AJAX なしで機能することはわかっています。

したがって、私が今持っているものでは、URL のテキストボックスから名前を送信しますが、coddispdiv は空白のままにします。

アイデアはありますか?

<?php

if( $_SERVER['REQUEST_METHOD'] == 'POST' &&
    isset($_POST['checkname']))
{
$link = mysqli_connect('localhost', 'rhoiydsc_testusr', 'Pass123!', 'rhoiydsc_deathnote');
/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* create a prepared statement */
if ($stmt = mysqli_prepare($link, "SELECT cod FROM deathnote WHERE victim=?")) {

 /* bind parameters for markers */
 mysqli_stmt_bind_param($stmt, "s",  $_POST['checkname']);

 /* execute query */
 mysqli_stmt_execute($stmt);

/* bind result variables */
mysqli_stmt_bind_result($stmt, $cod);

/* fetch value */
mysqli_stmt_fetch($stmt);

echo $cod;

 /* close statement */
 mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);

} 



?>

編集:PHPコードが追加されました

4

2 に答える 2

0

実際、あなたのコードは正しいです。問題は、送信するデータを指定していないことです:

xmlhttp.open("GET", "check.php", true);

XMLHttpRequest オブジェクトはcheck.phpへの HTTP リクエストを実行します。それだけです。GET 経由でデータを送信する場合は、次のように URL に渡すだけです。

xmlhttp.open("GET", "check.php?foo=bar&number=1337", true);

上記のリクエストを実行すると、PHP スクリプトの $_GET に次のデータが含まれます。

array(
   'foo' => 'bar',
   'number' => '1337', // Note it's still a string, you must cast it as int
)

したがって、フォームから名前を送信する場合は、次のように記述します。

xmlhttp.open("GET", "check.php?name=" + escape(name), true);

nameは、値を含む変数です

于 2013-11-15T06:33:01.593 に答える