2012-01-17 16 views
6

He enviado datos a mi archivo jquery y he probado la cadena de datos y todo está almacenado donde debería estar, pero cuando lo publico en mi archivo php todas las variables son nulas. ¿Alguien me puede ayudar?Envío de jQuery a PHP

$(document).ready(function() { 
    $(".button").click(function() { 
    //$('.error').hide(); 
    var firstname = $("input#First_Name").val(); 
    var lastname = $("input#Last").val(); 
    var areacode = $("input#area_code").val(); 
    var phonenumber = $("input#Phone_Number").val(); 
    var emailaddress = $("input#emailaddress").val(); 
    var confirmemail = $("input#confirm_email").val(); 
    var password = $("input#Password_Input").val(); 
    var confirmpassword = $("input#ConfirmPassword").val(); 
    var streetaddress = $("input#StreetAddress_input").val(); 
    var streetaddress2 = $("input#StreetAddress2_input").val(); 
    var city = $("input#City_Input").val(); 
    var state = $("input#StateInput").val(); 
    var zipcode = $("input#ZipCode").val(); 
    var month = $("input#month_input").val(); 
    var day = $("input#day_input").val(); 
    var year = $("input#year_input").val(); 
    var services = $("input#services_input").val(); 
    var agreement = $("input#agreement").val(); 

    var dataString = 'firstname=' + firstname + '&lastname=' + lastname + '&areacode=' + areacode + '&phonenumber=' + phonenumber + '&emailaddress=' + emailaddress + '&confirmemail=' + confirmemail + '&password=' + password + '&streetaddress=' + streetaddress + '&streetaddress2=' + streetaddress2 + '&city=' + city + '&state=' + state + '&zipcode=' + zipcode + '&month=' + month + '&day=' + day + '&year=' + year + '&services=' + services + '&agreement=' + agreement; 
    alert(dataString); 
    $.ajax({ 
     type: "POST", 
     url: "http://www.vectorcreditsolution.com/js/process.php", 
     data: dataString, 
      success: function() { 
      alert("Yay it was sent"); 
    } 
     }); 
     return false; 
    }); 

y luego mi archivo php

<?php 
    $FirstName = $_POST["firstname"]; 
    $LastName = $_POST['lastname']; 
    $AreaCode = $_POST['areacode']; 
    $PhoneNumber = $_POST['phonenumber']; 
    $EmailAddress = $_POST['emailaddress']; 
    $Password = $_POST['password']; 
    $StreetAddress = $_POST['streetaddress']; 
    $StreetAddress2 = $_POST['streetaddress2']; 
    $City= $_POST['city']; 
    $State = $_POST['state']; 
    $ZipCode = $_POST['zipcode']; 
    $Month = $_POST['month']; 
    $Day = $_POST['day']; 
    $Year= $_POST['year']; 
    $Service=$_POST['services']; 

    var_dump($_POST["firstname"]); 
    var_dump($_POST['firstname']); 
    var_dump($_POST[firstname]); 
+4

En lugar de hacer esto manualmente, utilice [ajaxForm o serialize] (http://stackoverflow.com/a/1960245/797303) –

+0

Pregunta tonta: ¿Qué pasos está tomando para ver su archivo PHP para probar si $ _POST es ¿poblado? ¿Estás usando firebug para verificar la respuesta? – DampeS8N

+0

oh He utilizado el var_dump – user1154295

Respuesta

4

Usted no está dando salida a los datos devueltos desde el AJAX y no está utilizando una herramienta para poder verla. Quizás esperas que los volcados de var aparezcan en la página. No lo harán, serán devueltos a la función de éxito, donde puede usar los datos como mejor le parezca.

El método AJAX de jQuery conectará la salida de su archivo PHP a la variable 'ret' dentro de la función de éxito. Si desea devolver un mensaje HTML de éxito, por ejemplo, puede agregar ese HTML a la página sin actualizarlo. O cualquiera de un millón de cosas.

Debe leer en AJAX.

cambiar esta situación:

$.ajax({ 
type: "POST", 
    url: "http://www.vectorcreditsolution.com/js/process.php", 
    data: dataString, 
    success: function() { 
     alert("Yay it was sent"); 
    } 
}); 

a este:

$.ajax({ 
type: "POST", 
    url: "http://www.vectorcreditsolution.com/js/process.php", 
    data: dataString, 
    success: function(ret) { 
     alert(ret); 
    } 
}); 

y haga clic en el botón en la página con el jQuery.

No combine esto con las otras respuestas en esta página. Uno va a cambiar sus claves de matriz sobre usted (serializar).

+0

oh wow el cuadro de alerta se convirtió en prueba de string (10) – user1154295

+0

pero los valores de la publicación siguen siendo NULL – user1154295

+0

No use su [archivo php] (http://www.vectorcreditsolution.com/js/process.php) directamente. ¿Supongo que "Prueba" es el valor que ingresó en el formulario? La respuesta de AJAX (cuadro de alerta) le muestra cuál es el resultado de PHP. – DampeS8N

5

datos de prueba a publicar como un diccionario Javascript, no como una cadena grande:

$.ajax({ 
    // ... 
    data: { 
     firstname: firstname, 
     lastname: lastname, 
     // etc. 
    } 
}); 
+0

gracias por la respuesta :-) Lo probé y es todavía vacías datos \t: { \t \t \t nombre: apellido, \t \t \t apellido: apellido, \t \t \t areacode: areacode, \t \t \t número de teléfono: numero de teléfono, \t \t \t EMAILADDRESS: EMAILADDRESS, \t \t \t contraseña: p assword, \t \t \t StreetAddress: StreetAddress, \t \t \t streetaddress2: streetaddress2, \t \t \t ciudad: la ciudad, \t \t \t Estado: estado, \t \t \t código postal: código postal, \t \t \t meses: el mes \t \t \t}, – user1154295

0

me gustaría utilizar la función jQuery serialize(). En lugar de buscar cada uno campos de valor serializar todo el formulario

$("#form-id").serialize(); 


$.ajax({ 
    type: "POST", 
    url: "http://www.vectorcreditsolution.com/js/process.php", 
    data: $("#form-id").serialize(), 
     success: function() { 
     alert("Yay it was sent"); 
} 
    }); 
    return false; 
}); 
+0

Esto cambiará su matriz llaves en ellos. – DampeS8N

+0

Los cambiaría al nombre del campo en el formulario. Por lo general, no es tan perjudicial, pero tendrían que modificar su php. – VictorKilo

Cuestiones relacionadas