0

それは私のjqueryコードです:

$(function() {  
$("#edit_union").click(function() {
    var tuzove = $("#tuzove").val();
    var description = $("#description").val();
    var union_owner = $("#union_owner").val();
    var union_name = $("#union_name").val();
    var uid = $("#uid").val();
    var dataString = 'tuzove='+ tuzove + '&description=' + description + '&union_owner=' + union_owner + '&union_name=' + union_name + '&uid=' + uid;  
    $.ajax({  
        type: "POST",  
        url: "ajax/admp_ajax.php",  
        data: dataString,  
        success: function() {
            $(".adm_panel_serach_user").append("<br/><span style=' color: #0099ff; font-weight: bold;'>Success.</span>");
        }  
    });
    return false;
});
});

それは ajax/admp_ajax.php ページです:

include_once 'classes/admin_panel.php';
$admpanel = new adminPanal();

if ($_POST['tuzove'] && $_POST['description'] && $_POST['union_owner'] && $_POST['union_owner'] && $_POST['uid'])
$admpanel->editUnion($_POST['tuzove'], $_POST['description'], $_POST['union_owner'], $_POST['union_name'], $_POST['uid']);

それが editUnion 関数です:

public function editUnion($tyzove, $description, $ownerName, $unionName, $unionId) {
    mysql_query("UPDATE `union` SET tuzove = '" . $tyzove . "', description = '" . mysql_real_escape_string($description) . "', owner_id = '" . $this->getUserId($ownerName) . "' WHERE name = '" . $unionName . "'");

    if ($ownerName == $ownerName)
        mysql_query("UPDATE users SET union_rank = '0', union_id = '0' WHERE username = '" . $ownerName . "'");

    mysql_query("UPDATE users SET union_rank = '1', union_id = '" . $unionId . "' WHERE username = '" . $ownerName . "'");
}

問題は、edit_union ボタンをクリックすると、Success と書き込みますが、union :( を更新しないことです。

4

2 に答える 2

1

さて、あなたのphpページは、SQLクエリが失敗したかどうかに関係なく、いくつかのコンテンツを返します。これは、何らかの理由でページを読み込めない場合を除いて、成功は常に発生することを意味します。SQLに障害が発生しても、SQLは失敗しません。

したがって、成功は常に印刷されますが、更新自体は失敗する可能性があります。ブラウザでphpページを単独で実行してみて、SQLが起動するエラーを確認してください。phpのechoステートメントを使用してSQLクエリを画面に出力してから、これらをsqlコマンドラインまたはphpmyadminなどにコピーすることもできます。

また、クエリ情報はフォーム/入力フィールドから取得されるため、SQLインジェクションなどを防ぐために非常に注意する必要があります。代わりに、mysqliとプリペアドステートメントの使用を検討してください。

于 2012-07-10T09:57:54.827 に答える
0

You ajax success function is not doing anything..it is just updating success...which is fine as per JS side..check the data which is getting sent,..dont use dataString ..infact create dataobject like

var dataObject=new Object();
dataObject.union_name=union_name;

debeug your server side code..I think data is not getting submitted successfully.

于 2012-07-10T09:59:29.083 に答える