私はjqueryとAJAXにまったく慣れていません.5〜6時間懸命に努力し、解決策を探した後、私は助けを求めています.
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$(".submit").live('click',(function() {
var data = $("this").serialize();
var arr = $("input[name='productinfo[]']:checked").map(function() {
return this.value;
}).get();
if(arr=='')
{
$('.success').hide();
$('.error').show();
}
else
{
$.ajax({
data: $.post('install_product.php', {productvars: arr}),
type: "POST",
success: function(){
$(".productinfo").attr('checked', false);
$('.success').show();
$('.error').hide();
}
});
}
return false;
}));
});
</script>
HTML+PHPコードは、
$json = file_get_contents(feed address);
$products = json_decode($json);
foreach(products as product){
// define various $productvars as a string
<input type="checkbox" class="productvars" name="productinfo[]" value="<?php echo $productvars; ?>" />
}
<input type="submit" class="submit" value="Install Product" />
<span class="error" style="display:none"><font color="red">No product selected.</font></span>
<span class="success" style="display:none"><font color="green">product successfully added to database.</font></span>
フィードから製品情報を取得しているため、ページを更新したくないため、AJAX ポスト メソッドを使用しています。上記のコード「install_product.php」ページを使用すると、文字列が適切に処理され、適切に機能します。
私が直面している問題は、最初にチェックボックスをオンにして製品をインストールしたときに完全に正常に動作することですが、最初の投稿の後、「動作する場合と動作しない場合があります」. 新しいリストはフィードから取得されるため、最初の投稿はすべて完璧です。その後、インストール ボタンを何度もクリックする必要があります。
さまざまなブラウザーでコードをテストしましたが、同じ問題が発生しました。何が問題なのですか?(ローカルホストではなくライブホストでコードをテストしています)