0

実行したphpから2つの値を返す必要があるため、このjQuery.postでjsonを利用しようとしています。jsonを実装していないとき、コードは機能していました。入力したプロモーション コードが特定のブローカーで有効かどうかを確認する必要があります。戻す必要がある 2 つの変数は、インスタント メッセージが有効かどうか (ユーザーに表示される) と、データベースの更新中に後で使用される隠しフィールドを更新する必要があることです。

jQuery.post はまったく起動していないようですが、そのすぐ上のコード (ajax-loader.gif) は機能しています。

jQuery.ajaxを使用してある時点で全体を書き直しましたが、そこにも問題がありました。確かに、私はおそらくこれをあまりにも長く見ていて、何度も書き直そうとしましたが、どんな助けも大歓迎です!!

ここにjQuery.postがあります

<!-- Below Script is for Checking Promo Code Against Database-->
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery("#promocode").keyup(function (e) {

    //removes spaces from PromoCode
    jQuery(this).val(jQuery(this).val().replace(/\s/g, ''));

    var promocode = jQuery(this).val();
    var brokerdealerid = document.getElementById("BrokerDealerId").value;

    if(promocode.length > 0 ){
        jQuery("#promo-result").html('<img src="../imgs/ajax-loader.gif" />');

        jQuery.post(
                '../check_promocode.php', 
                {promocode:promocode, brokerdealerid:brokerdealerid}, 
                function(data) {
                $("#promo-result").html(data.promoresult);
                $("#promo-result-valid").html(data.promovalid);
                },
                "json");
    }
}); 
});
</script>
<!-- End Script is for Checking Promo Code Against Database-->

check_promocode.php の関連コードは次のとおりです。

    //sanitize incoming parameters
if (isset($_POST['brokerdealerid'])) $brokerdealerid = sanitizeMySQL($_POST['brokerdealerid']);
$promocode = sanitizeMySQL($promocode);

//check promocode in db
$results = mysql_query("SELECT PromotionCodeIdentifier FROM PromotionCode WHERE PromotionCodeIdentifier='$promocode' AND BrokerDealerId='$brokerdealerid' AND PromotionCodStrtDte <= CURDATE() AND PromotionCodExpDte >= CURDATE()");
//return total count
$PromoCode_exist = mysql_num_rows($results); //total records

//if value is more than 0, promocode is valid
    if($PromoCode_exist) 
    {

        echo json_encode(array("promoresult"=>"Promotion Code Valid", "promovalid"=>"Y"));
        exit();

    }else{

        echo json_encode(array("promoresult"=>"Invalid Promotion Code", "promovalid"=>"N"));
        exit();
    }

リクエストに応じて、ブラウザにログインするものは次のとおりです。プロモーションコードを入力すると、ajax-loader が無期限に表示されたままになり、返信メッセージが返されません。ハードエラーは実際には見られません。

[00:30:41.985] GET http://localhost:8888/imgs/ajax-loader.gif [HTTP/1.1 304 Not Modified 2ms]
[00:30:42.999] POST http://localhost:8888/check_promocode.php [HTTP/1.1 200 OK 2ms]
[00:30:43.671] POST http://localhost:8888/check_promocode.php [HTTP/1.1 200 OK 2ms]
[00:30:43.976] POST http://localhost:8888/check_promocode.php [HTTP/1.1 200 OK 2ms]
[00:30:44.178] POST http://localhost:8888/check_promocode.php [HTTP/1.1 200 OK 2ms]
4

1 に答える 1

0

問題のあるコードを見つけたと思います...笑

$promocode = sanitizeMySQL($promocode);

する必要があります...

$promocode = sanitizeMySQL($_POST['promocode']);

それを修正するMybae... :)どうなるかわかりませんが....行が見つからない場合にエラーをエコーし​​ていたので、少なくともJSONでそのエラーを受け取ったはずです/Jquery側...それ以上のものがあります。

于 2013-06-25T05:49:38.440 に答える