2017-03-03 221 views
1

我嘗試提交我的表單與.quot()在jquery但不工作,因爲PrestaShop上的Tools :: isSubmit()方法等待輸入一個正確的名稱。Prestashop表單提交jquery Ajax

這裏是我的HTML表單:

<form onsubmit="" action="{$link->getModuleLink('jmarketplace', 'addproduct', array(), true)|escape:'html':'UTF-8'}" method="post" class="std" enctype="multipart/form-data"> 

的PHP:

If (Tools::isSubmit('submitAddProduct')) { 
     //d($_POST); 
     // my stuff 
} 

因此,它只能與一個按鈕的工作:

<button type="submit" name="submitAddProduct"> 

我想提交此表格與jQuery或ajax呼叫。 與ajax我試過這個,但不工作,我認爲Tools :: isSubmit('submitAddProduct')正在等待真正的參數,我不知道該怎麼做。

這是isSubmit方法Tools類:

public static function isSubmit($submit) 
{ 
    return (
     isset($_POST[$submit]) || isset($_POST[$submit.'_x']) ||  isset($_POST[$submit.'_y']) 
     || isset($_GET[$submit]) || isset($_GET[$submit.'_x']) || isset($_GET[$submit.'_y']) 
    ); 
} 

這裏是我的js代碼與AJAX調用:

$(document).ready(function() { 
    var form = $('.std'); 
    form.submit(function(e) { 
     $.ajax({ 
      type: 'POST', 
      url: baseDir + 'module/jmarketplace/addproduct', 
      data : { 
      //required parameters 
       ajax: 1 , 
       action : 'submitAddProduct', 
      }, 
     }); 
     //e.preventDefault(); 
    }); 
}); 

回答

0

Tools::isSubmit()檢查,如果該參數是發佈或沒有,所以你必須編輯你的js代碼是這樣的:

$(document).ready(function() { 
    var form = $('.std'); 
    form.submit(function(e) { 
     $.ajax({ 
      type: 'POST', 
      url: baseDir + 'module/jmarketplace/addproduct', 
      data : { 
      //required parameters 
       ajax: 1 , 
       action : 'submitAddProduct', 
       submitAddProduct : true // or 1 
      }, 
     }); 
    //e.preventDefault(); 
    }); 
}); 

但是我會建議你將事件綁定到一個按鈕。
例如:

<form> 
    ... 
    <button id="submitmyform" type="button">Send</button> 
    ... 
</form> 

而且JS:

$(document).ready(function() { 
    $(document).on('click', '#submitbutton', function(e){ 
     e.preventDefault(); 
     $.ajax({ 
      type: 'POST', 
      url: baseDir + 'module/jmarketplace/addproduct', 
      data : { 
      //required parameters 
       ajax: 1 , 
       action : 'submitAddProduct', 
       submitAddProduct : true // or 1 
      }, 
      dataType: 'json', 
      success : function(json){ 
       // check the page response 
       console.log(json); 
      }; 
     }); 
    }); 
}); 

請仔細閱讀此以前的答案,這將是非常有益的給你:

+0

剛剛嘗試和它的頁面重新加載一樣的形式是要提交但我沒有錯誤,如果空字段它只是一個刷新? – psppro26

+0

因爲您評論過'e.preventDefault()'片段。 – sarcom