2015-02-11 114 views
1

好吧,大家希望你也可以幫助我。我不會瘋狂地熟悉jQuery和AJAX,可能我錯過了一些非常簡單的東西。我無法傳遞超過1個變量。我嘗試了幾種不同的東西,其中最接近我的工作是this,但即使這樣也行不通。如何通過jQuery將多個變量傳遞給PHP

jQuery的

$("#bodymes ul li span[contenteditable=true]").blur(function(){ 
      var weight_id = $(this).attr("id") ; 
      var weightbody_mes = $(this).text() ; 
      $.post("../includes/bodymes_weight.php", { weightbodymes: weightbody_mes }) 
       .done(function(data) { 
        $(".weightsuccess").slideDown(200); 
        $(".weightsuccess").html("Weight Updated successfully"); 
        if ($('.weightsuccess').length > 0) { 
         window.setTimeout(function(){ 
          $('.weightsuccess').slideUp(200); 
         }, 4000); 
        } 
        // alert("Data Loaded: " + data); 
      }); 
     }); 

所以基本上如果我運行這個它會完全正常工作和我的PHP腳本將會處理它。請注意,當我啓動並啓用警報並顯示加載的數據時,它會顯示正確的信息(來自weightbodymes的信息),我可以更新數據庫。但只要我再添變數{ weightbodymes: weightbody_mes, weightid: weight_id }它不會顯示數據警告框加載(如果我試圖表現出從它的工作這兩個變量的信息,但它也只是一個變種提交給PHP是:

$weightid = $_POST['weightid']; 
    $weight = $_POST['weightbodymes']; 

    if ($insert_stmt = $mysqli->prepare("UPDATE body SET body_weight=? WHERE body_id='$weightid'")) { 
      $insert_stmt->bind_param('s', $weight); 
      // Execute the prepared query. 
      if (! $insert_stmt->execute()) { 
       header('Location: ../index.php?error=Registration failure: INSERT nwprogram1'); 
      } 
    } 

希望你能告訴我在哪裏,我犯了一個錯誤,以及如何糾正它。 預先感謝您!

+0

futher性質的'data'對象添加:'{weightbodymes:weightbody_mes,weightid:weight_id,FOO: '棒'}' – 2015-02-11 15:39:14

+0

送東西就像這個'{'data':{'var_1':'value1','var_2':'value2'}}'然後通過$ _POST ['data'] ['var_1'],$ _POST ['數據'] ['var_2']' – NestedWeb 2015-02-11 15:39:57

+0

這應該有你想要的東西http://stackoverflow.com/questions/8191124/send-javascript-variable-to-php-variable – MrPickles 2015-02-11 15:40:00

回答

4

使用JS/JQUERY POST Ajax請求。下面是我用我所有的AJAX語法來電

var first = 'something'; 
var second = 'second'; 
var third = $("#some_input_on_your_page").val(); 


///////// AJAX //////// AJAX ////////// 
    $.ajax({ 
     type: 'POST', 
     url: 'page_that_receives_post_variables.php', 
     data: {first:first, second:second, third:third}, 
     success: function(response){ 
      alert('yay ajax is done.'); 
      $('#edit_box').html(response);//this is where you populate your response 
     }//close succss params 
    });//close ajax 
///////// AJAX //////// AJAX ////////// 

代碼PHP頁面page_that_receives_post_variables.php

<?php 
$first = $_POST['first']; 
$second = $_POST['second']; 
$third = $_POST['third']; 

echo 'now do something with the posted items.'; 
echo $first; //etc... 
?> 
+0

嗯...這看起來像一個解決方案,但由於某種原因它不工作,它仍然只傳遞一個變量。因此,例如,在一個響應中,我只是得到'weightbodymes',儘管我傳遞了兩個變量,我的數據行看起來像這樣:data:{weightid:weight_id,weightbodymes:weightbody_mes,third:third},'(I left third element並分配了變量,但沒有嘗試用PHP調用它)。任何其他建議? – vpetkovic 2015-02-11 16:00:16

+0

我使它與你的解決方案一起工作。也投了票。謝謝! @Stephen Carr – vpetkovic 2015-02-11 16:55:07

+0

問題是什麼?爲了進行調試,在通過ajax發佈變量之前,只需提醒(your_variables),以便看到實際獲得的內容。通常幫助我。 – technology101010 2015-02-11 19:12:14

相關問題