2013-09-16 12 views
1

我有這個動作,我通過數組格式的後期獲取數據,並將其保存到數據庫,這部分工作,但即時通訊嘗試通過Ajax做到這一點,我認爲我有問題獲取數據從表單或可能發送數據到我的PHP腳本。把這個PHP的動作在AJAX

<?php 
    $elegido = $_POST['producto']; 
    if(empty($elegido)) { 
    echo("No has seleccionado suficientes productos"); 
    } 
    else { 
    $N = count($elegido); 
    for($i=0; $i < $N; $i++) { 
    $elegidos = $elegido[$i]; 
    $conn=mysql_connect('localhost', 'user', 'pass'); 
    mysql_select_db("database",$conn); 
    $query = "INSERT INTO table (column)"; 
    $query .= "VALUES ('".$elegidos."')"; 
    mysql_query($query) or die("Error sending data.<br>"); 
    } 
echo("Los datos fueron enviados correctamente, ¡gracias por participar!"); 
} 
?> 

我實現了這一點,但它不工作

jQuery(function($) { 
$("#enviar").click(function(e) { 
    e.preventDefault(); 
     var opciones = { 
      method:"post", 
      url:"procesar.php", 
      producto = []; 
      data:{ 
       data: {producto:producto}, 
      }, 
      success:function(result){ 
       $("body .mensaje").remove(); 
       if(result=="exito"){ 
        $("body").append("<div class='mensaje'>Datos Enviados!</div>"); 
       }else{ 
        $("body").append("<div class='error'>ERROR</div>"); 
       } 
      } 
     }; 
    $.ajax(opciones); 
}); 
}); 

上怎麼回事任何線索?

+1

你有使用網絡督察像螢火蟲或一個原生瀏覽器,並證實,HTTP.POST請求被髮送?它將位於「網絡」或「連接」標籤下。 – WhiskeyTangoFoxtrot

+0

在頂部做一個var_dump($ _ POST),看看變量$ _POST變量是多少 – JorgeeFG

+1

我認爲你有一個javascript錯誤。我不確定什麼是producto = [];正在做你的opciones對象..「 – user2658774

回答

0

你有一個語法錯誤(的producto = [];整行),你是不發送從表單變量PHP腳本。

此:

 url:"procesar.php", 
     producto = []; 
     data:{ 
      data: {producto:producto}, 
     }, 

應該是這樣的:

 url:"procesar.php", 
     data: $('form').serialize(), 
+0

即時通訊從一組15個複選框,從用戶選擇5,即時存儲他們的價值觀,這仍然工作? – user2770956

+0

@ user2770956如果它用於使用傳統(非Ajax)表單提交,它應該以與此類似的方式工作。你有jQuery包括,對吧? – jeroen

+0

但是,我必須改變我在我的PHP腳本中獲取數據的方式嗎? – user2770956

1

data應該是這樣的:

// data: { name: "John", location: "Boston" } 

jQuery(function($) { 
$("#enviar").click(function(e) { 
    e.preventDefault(); 
     var opciones = { 
      method:"post", 
      url:"procesar.php", 
      producto = [], 
      data:{ producto: producto }, // 'producto' will be an empty array, as you defined above. 
      }, 
      success:function(result){ 
       $("body .mensaje").remove(); 
       if(result=="exito"){ 
        $("body").append("<div class='mensaje'>Datos Enviados!</div>"); 
       }else{ 
        $("body").append("<div class='error'>ERROR</div>"); 
       } 
      } 
     }; 
    $.ajax(opciones); 
}); 
}); 
+0

謝謝你,糾正我得到我自己的錯誤和表是不是填充..問題是在jquery函數,當我得到數組並通過它作爲json – user2770956

+0

jeroen發現你在聲明producto = [] – JorgeeFG

+0

的行中有語法錯誤是的,我刪除了它,但現在我得到了我的錯誤信息 – user2770956