に戻りますが、間違っている箇所は見つかりません。次のように 次のコードは次のとおりです。PHPの充填からPHPからHTML、jQueryの順に移動してから、
$ _POSTは
<button class="final-buy-now-btn" type="submit"
book="<?php echo $_POST['book'];?>"
productId="<?php echo $thisProductId?>"
value="<?php echo $thisProductId ?>"
<?php if($book === 'christmas'){ echo "country=\"".$thiscountry."\" ";
echo "city=\"".$thiscity."\">";} ?>
<?php if($book === 'birthday'){ echo "bday=\"".$bday."\" ";
echo "month=\"".$month."\">";} ?>
<a>Buy Now</a>
</button>
その後、私はエラーをすることを期待するが、私は見つけるcouldntのどの最終購入-今-BTNを呼び出しています属性それ:
$('.final-buy-now-btn').click(function(event){
var book = $(this).attr("book");
var productId = $(this).attr("productId");
if(book === "christmas"){
var country = $(this).attr("country");
var city = $(this).attr("city");
$.ajax({
type: 'POST',
url: '../../wp-admin/admin-ajax.php',
data: { 'action' : 'add_item_meta_data_to_cart_item',
'book' : book, 'productId' : productId,
'country' : country,'city' : city},
success: function (res) {
if (res) {
window.location = 'index.php/cart/';
}
}
})
}
if(book === "birthday"){
var month = $(this).attr("month");
var bday = $(this).attr("bday");
$.ajax({
type: 'POST',
url: '../../wp-admin/admin-ajax.php',
data: {
'action' : 'add_item_meta_data_to_cart_item',
'book' : book,'productId' : productId,
'month' : month,'bday' : bday},
success: function (res) {
if (res) {
window.location = 'index.php/cart/';
}
}
})
}
});
そして最後の誕生日のために値が返さなっているが、クリスマス何のために返さなっている 私のPHPの関数であると呼ばれるアクション、から。
function add_item_meta_data_to_cart_item($cart_item_data, $product_id, $variation_id) {
$item_meta_data = filter_input(INPUT_POST, 'item_meta_data');
$item_meta_data = json_decode($item_meta_data);
echo "<pre>";
print_r($item_meta_data);
echo "</pre>";
ボタンのhtml(最初のphpブロックでレンダリングされた)を調べ(投稿し)、ajax成功関数のresの値を調べて(ポストする)必要があります。開発ツールF12コンソールタブを使用してJavaScriptエラーをチェックし、ネットワークタブでajax投稿と送信/受信データを調べる必要があります。 – James
@ジェームズ、私はコンソールと私のjavascriptのすべてのvarが満たされていることがわかりますが、すべてのvarのnullをリセットするには、AJAXを参照してくださいすることができます – Hazo
場合にのみ最初のif文がtrueの場合、私はこの問題を取得していないと私は最後のPHPファイル – Hazo