3

チェックボックスを変更したときにフォーム送信を作成しようとしています。コードを以下に示します。。私の問題は何も起こらないことです

gotofile.php

ファイルが//成功関数で何かが実行されます

jquery:

$("#container input[type=checkbox]").change(function(e){
                if($(this).attr('checked')) 
                {

                    var cnType=$(this).attr("id");

                    $.ajax({
                        type: "POST",
                        url: "gotofile.php",
                        data: "typID="+cnType ,
                        cache: false,
                        success: function(){ 
                            //do something 
                        }
                    });
                }
            });

php:

include '../dbconnection/dbconfig.php';


$typeID=$_POST['typID'];
$qryConnections="INSERT INTO ...";
$rslt1 = mysql_query($qryConnections);

html

<form id="cnct" method="POST">
                            <div id="container" style="">
                                <ul style="list-style: none;">
                                   <li><input type="checkbox" id="1" />A</li>
                <li><input type="checkbox" id="2" />B</li>

                                </ul>
                            </div></form>

誰かが私が間違っていることを助けてくれますか?

4

3 に答える 3

2

いくつかのセキュリティ問題

JSは、サイトに移動するすべての人に表示されることを常に念頭に置いてください。使用:

data : "typID="+cnType

typIDはSQLのフィールドだと思います。CSRFフィルターがないため、有効なリクエストをスプーフィングし、外部の場所からすべてのフィールドを更新するajaxスクリプトを作成できます。覚えておくべきことは、CSRFまたはクロスサイトリクエストフォージェリを読むことをお勧めします。

スクリプトが機能しないのはなぜですか

成功関数が起動している場合は、スクリプトが実行されています。PHPで$_POST['typID']の値を出力してデバッグします。正しく送信された場合は、コンソールに変数の値が表示されます。

これに加えて、すべてがうまくいったことを検証するために、成功関数のJSON応答をPHPにエコーアウトさせることは常に良いことです。

echo json_encode(array('response' => 'success'));

または('response' => 'failed')またはあなたが必要なものは何でも。次に、関数でJSONを評価できますsuccess

これがお役に立てば幸いです。

于 2012-07-27T07:30:06.980 に答える
0

まず、Jqueryコードのチェックボックスにイベントのclick代わりに使用する必要があります。change

2つ目は、HTMLコードのチェックボックスに値を指定しなかったことです。

それがうまくいかなかったかどうか尋ねてください。

于 2012-07-27T07:20:38.377 に答える
0

試す

        $("#container input[type='checkbox']").click(function(e){

                var cnType=$(this).attr("id");

                $.ajax({
                    type: "POST",
                    url: "gotofile.php",
                    data: "typID="+cnType ,
                    cache: false,
                    success: function(){ 
                        //do something 
                    }
                });
         });
于 2012-07-27T07:47:50.977 に答える