この正規表現が失敗する理由を誰かが説明できますか?オンラインの正規表現テスターで動作します
http://www.spaweditor.com/scripts/regex/index.phppreg_match
これは私と同じようにPHPを使用します。
これがほとんどすべての関連するコードです。
はい、正規表現は正常に機能しますが、phpコードは機能しません。いつ機能するかを覚えておく必要がありますが、通常はタイプミスではありません。この場合、 aでは.
なくaを入力してパターンを文字列に連結しましたが,
、これは非常にわかりにくいタイプミスです。私が構文エラーで行うそのような1つのトリックとして、私が見つけられないように思われるのは、問題のコードを再入力することです。もちろん、この場合、私のタイプミスは無効な構文にはなりませんでした。
preg_matchが誤った数のパラメーターを受け取っていたという事実がエラーを引き起こしたはずなので、おそらく私がすべきだったもう1つのことはApacheエラーログをチェックすることです。
私はjsonを返すphpスクリプトへのajax呼び出しを使用するのは初めてで、生成されるphpエラーが表示されないことに慣れていません。これまで、Javaクライアントを使用するときは、Webサービスの応答をテストするために常にphpcurlクライアントを使用していました。私は急いで、このプロジェクトのそのステップをスキップしました。
PHPを適切にデバッグするためにどのような方法を使用していますか?
//$colors = mysql_real_escape_string($_POST['color']);
$colors='333333,cbafff';
function addcolor($colors,$cart_id, $dbh) {
//insert color or scheme into cart
//If succeeds return success, if fail return failure
$stmt2=$dbh->prepare("INSERT IGNORE INTO cart (cart_id,item_id) values (:cart_id,:item_id)");
$stmt2->bindValue(':cart_id',$cart_id,PDO::PARAM_INT);
$color_array=split(",",$colors);
foreach ($color_array as $color) {
$color=trim($color);
if (!preg_match("/^[A-Fa-f0-9]{6}$/".$color)) {
return array("result"=>"error: Invalid Color $color");
break;
}
$stmt2->bindValue(':item_id',$color,PDO::PARAM_STR);
if (!($stmt2->execute())) {
return array("result"=>"failure ". $stmt2->getCode());
break;
}
}
return array("result"=>"success");
}
jQueryスクリプト
// to use surround anchor tags with div (id=colors). Set color or scheme id as href value. On click the item is posted to the web service.
// To do improve response handling from webservice.
$(document).ready(function(){
$("#img a").live("click", function(event) {
event.preventDefault();
var item = $(this).attr( 'href' );
var rev = $(this).attr('rev');
var action ="add";
if (rev == "1") {
action = "add";
$(this).attr('rev',"2");
}
else {
action = "remove";
$(this).attr('rev',"1");
}
var jqxhr = $.post("webservice.php", { action: action, color: item }, function(data) {
var result=data.result;
if (result!="success") {
alert(result);
}
}, "json")
.error(function() {
alert("error: unable to contact web service");
});
});
});