2015-11-08 32 views
-1

我試圖用ajax將點擊按鈕的值發送到我的php文件。即用戶點擊btn1,然後值1應該推入陣列和阿賈克斯應該發送到我的文件screen.php推送陣列中單擊元素的值

我現在控制檯顯示Yay it worked

我的JS:

jQuery(document).ready(function($){ 
    var ajaxurl = 'screen.php'; 
    $values = []; 
    $('.ui-btn').click(function(){ 
    $values.push($(this).val()); 
}); 
$.ajax({ 
     url: ajaxurl, 
     type: 'post', 
     data: { 
      buttons: $values, 
     }, 
     success: function (result) { 
      console.log('Yay it worked' + $values); 
     }, 
     error: function (xhr, ajaxOptions, thrownError) { 
      console.log('Something went wrong'); 
     } 
    }); 
}); 

我的html:

<div> 
    <button name="btn1" type="submit" id="btn1" value="1" class="ui-btn"></button> 
    <button name="btn2" type="submit" id="btn2" value="2" class="ui-btn"></button> 
    </div> // I have up to 9 buttons, thats only a piece 
+2

'$ values'在範圍中不可用? – hjpotter92

+1

你的問題是什麼? – Teemu

+2

您的'.ajax'似乎在點擊之前被調用,甚至比domready早。 – fuyushimoya

回答

3

我對你的代碼做了一些修改,希望能夠實現你想要的。這將保存一系列值,並在每次單擊按鈕時將其發佈到您的PHP腳本中。我已經刪除了一些未使用的變量並清理了縮進。我不能說它是否會在接收端工作,因爲我看不到php文件。

var values = []; 

jQuery(document).ready(function($){ 

    $('.ui-btn').click(function() { 
     values.push($(this).val()); 
     $.ajax({ 
      url: 'screen.php', 
      type: 'post', 
      data: { 
       buttons: values, 
      }, 
      success: function() { 
       console.log('Yay it worked', values); 
      }, 
      error: function() { 
       console.log('Something went wrong'); 
      } 
     }); 
    }); 
}); 
+0

謝謝你的哥們! :) – klamertd

0

如果你想AJAX將每個按鈕被點擊時被調用,那麼你需要把它放在b的事件處理函數的回調函數中utton。現在,當文檔準備就緒時,您的代碼會調用一次Ajax。在單擊任何按鈕之前準備文檔時,它將使用第一組空數組。將ajax調用放在click回調中,每次調用帶有更新數組的ajax。