0

ajaxを使用するこの関数がありますが、この関数は機能しません。何度も試しましたが、どこに問題があるのか​​わかりません。ユーザーがチェックボックスの選択を使用してデータベースに重複エントリを挿入したときに、アラートを作成しようとしています。

<script>    
    function func(e,eid,emprid) {
       if(document.getElementById(e).checked){
          var dataString = 'eid=' + eid + '&emprid='+emprid;
          $.ajax({
             type:"POST",
             url: "mylistcheck.php",
             data: dataString,
             success: function(result){
                if(result!='0') {
                   modal.open({content: "<span style=\"color:red\" ><h2>You have already selected  candidate </h2></span>"});
                   document.getElementById(e).checked=false;
                }
             }
          });
       } 
    }
</script>

mylistcheck.phpこのように見えます:

<?php require_once("includes/session.php"); ?>
<?php require_once("includes/connection.php"); ?>
<?php require_once("includes/functions.php"); ?>
<?php
    $eid=$_POST['eid'];
    $emprid=$_POST['emprid'];

    $sqlchecklist="SELECT * FROM selected_candidate WHERE eid='{$eid}' AND rid='{$emprid}' ";
    $checklistres=mysql_query($sqlchecklist);
    $list_check=mysql_num_rows($checklistres);
    echo "numrows listcheck".$list_check;
    if($list_check>0) {
        echo "1";
    } else {
        echo "0";
    }
?>

チェックボックスコードは次のようになります。

echo "<td><input id=\"select_candi{$i}\" onclick=\"javascript:func(this.id,{$data_set['eid']},{$emprid})\" type=\"checkbox\" name=\"check_candi[]\" value=\"{$data_set['eid']},{$emprid}\"/></td>"; 
4

2 に答える 2

1

あなたのコードでは

echo "eid".$eid;
$emprid=$_POST['emprid'];
echo "rid".$emprid;

すでに結果をエコーし​​ているため、ajax functie は決して「0」にはなりません。その常に何かのようなeid{value}rid{value}0ものeid{value}rid{value}1

また、セキュリティ上の理由から、 mysqliまたはpdoに切り替えてください。$eidまた、との値を確認して、$rid期待どおりに一致するようにします。あなたのコードはSQL インジェクションに対して脆弱です。

スクリプト コードにはonclick="javascript:func(...)". onclickはすでに JavaScript 関数であるため、javascript:

于 2013-01-18T07:37:16.443 に答える
0

POSTリクエストを送信していますが、データはGET形式、つまり文字列で送信されます。代わりにオブジェクトとして送信する必要があります。

$.ajax({
    type:"POST",
    url: "mylistcheck.php",
    data: {"eid":eid,
           "emprid":emprid}, // send an object
    success: function(result){
if(result!='0')
{
modal.open({content: "<span style=\"color:red\" ><h2>You have already selected  candidate </h2></span>"});
document.getElementById(e).checked=false;
}
}
});
于 2013-01-18T07:41:21.357 に答える