0

jQuery Ajax関数が対応するphpファイルにデータを送信せず、成功関数を実行しないという問題があります。これが私のjsです:

function meetMember(empl_id) {

var member = {id: empl_id}

$.ajax({
    type: 'POST',
    url: 'php/infocheck.php', 
    data: member, 
    dataType: 'json',
    success: function(data) {
        alert('hi');
        console.log(data);
        $('#member-info').append(data); 
    }   
});
}

そして infocheck.php コード:

<?php

ini_set('display_errors',1);
error_reporting(E_ALL);

include('db-info.php');

$id = $_POST['id'];

    $q = "SELECT * FROM team WHERE empl_id = $id LIMIT 1";
    $member = mysql_fetch_assoc(mysql_query($q));
    $met = $member['ifmet'];

    if($met != 1) {
        mysql_query("UPDATE team SET ifmet = 1 WHERE empl_id = $id");
    }

    echo "<img src=\"game/images/{$member['image']}\" alt='' style='padding:2px 10px 0px 0px; float:left;' />";
    echo "<h3>{$member['name']}</h3>";
    echo "<h4><em>{$member['title']}</em><h4>";
    echo "<p>{$member['description']}</p>";

?>

ブラウザで php ファイルを表示すると、次のエラーが表示されます。

「通知: 未定義のインデックス: 8 行目の /Applications/MAMP/htdocs/Development/ETL24/php/infocheck.php の id

警告: mysql_fetch_assoc() は、パラメーター 1 がリソースであると想定しており、12 行目の /Applications/MAMP/htdocs/Development/ETL24/php/infocheck.php で指定されたブール値です"

成功関数の console.log と alert は実行されません。PHPファイルを表示しても、コンソールにエコーが表示されません。アイデアやご質問があればお知らせください。ありがとうございました。

4

3 に答える 3

1

dataType: 'html' ファイルリターンを使用するHTML

ブラウザ(GET)でファイルを開くと、 by を渡す必要があるため、エラーが発生します。idPOST

デバッグしたい場合はtype: GET、URLの追加に変更してください?id=1

于 2012-10-26T18:43:09.913 に答える
0

まず第一に、mysql関数はもう維持されていません。mysqli関数に変更することを検討してください。

このコード:

var member = {id: empl_id}

書く必要があります

var member = {"id": empl_id}; // notice the semi-colon too

「id」パラメータを渡していないため、$ _ POST ['id']は実際には空であるため、$id変数はnullになります。これはこの警告を説明しています:

Notice: Undefined index: id in /Applications/MAMP/htdocs/Development/ETL24/php/infocheck.php on line 8

実際には$idをnullに設定しています。

そして、そのような、あなたのクエリは次のようなものに変わりつつあります

SELECT * FROM team WHERE empl_id = LIMIT 1

これにより、mysql_queryがリソースではなくfalseを返すようになります。これは、このエラーの意味です。

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /Applications/MAMP/htdocs/Development/ETL24/php/infocheck.php on line 12"

要約すると、変数をJSONに変更して、mysqli関数の使用を開始するだけです。

于 2012-10-26T18:44:16.077 に答える
0

行を変更する

var member = {id: empl_id}

var member = "id="+empl_id;

また

  var member = {"id": empl_id}
于 2012-10-26T18:32:55.097 に答える