0

'value'からifステートメントに値を渡す方法に関する回避策はありますか?

1または0を示す値を取得します。今達成しようとしているのは、ifステートメントでそれを渡す方法です。こんなものが欲しかった。val = 0の場合、trueを返します。それ以外の場合はfalseを返します。私がajax機能を使用する正しい方向に進んでいるかどうかはわかりません。しかし、あなたが私に示すことができるより良い方法があれば、私はそれを感謝します。

$(function(){ 
       $('#add_product').click(function(){ 
         var i = $('#product_name').val(); 
         param = 'product_name='+i; 
         check_product(param).done(function(value) {
        var val = value; //value return is 1 or 0 - this is fine
         });
         //val should be past here so that I can determine if I will return true or false
         if(val == 0){
            return true;
         } else{
            return false;
         }
       }); 
    });

function check_product(param){ 
  return $.ajax({ 
    type : 'POST', 
    data : param, 
    url : baseurl+'cart/check_product_name/'
 });
}

htmlフォーム:

<?php echo form_open_multipart('cart/save_product'); ?>
<h3>Product Name:</h3>
<?php echo form_input(array('name' => 'product_name', 'id' => 'product_name'), set_value('product_name')); ?>
<h3>Price:</h3>
<?php echo form_input(array('name' => 'price', 'id' => 'price'), set_value('price')); ?>
<h3>Status:</h3>
<?php
$options = array(
    '1' => 'Active',
    '0' => 'Not Active'
);
echo form_dropdown('status', $options);
 ?>
<h3>Short Description:</h3>
<?php echo form_textarea(array('name' => 'short_description', 'id' => 'short_desc'), set_value('short_description')); ?>
<h3>Image:</h3>
<?php echo form_upload('userfile'); ?><br>
<p class="submit" id="post_submit"><input type="submit" value="Submit" id="add_product" /></p>
</form>
4

1 に答える 1

1

フォームが送信されないようにしてから、製品名が存在するかどうかをajaxで確認し、ajax呼び出しが完了したら、戻り値がゼロの場合はjavascriptでフォームを送信する必要があります。

$(function() {
    $('#add_product').click(function(e) {
        e.preventDefault();
        var i     = $('#product_name').val(),
            param = 'product_name=' + i,
            self  = this;
        check_product(param).done(function(value) {
            if (value === 0) self.submit();
        });
    });
});

function check_product(param) {
    return $.ajax({
        type: 'POST',
        data: param,
        url: baseurl + 'cart/check_product_name/'
    });
}​
于 2012-11-30T22:19:02.020 に答える