type por enviar ejemplos datos data con php jquery ajax post server

por - El método php POST no funciona con jquery Ajax o sin Ajax



enviar datos por ajax (2)

He buscado la pregunta en stackoverflow y encontré pocas respuestas, pero ninguna de ellas me fue útil. Así que lo estoy posteando de nuevo. Mi formulario php con el método de publicación en localhost funciona bien, pero el mismo código no funciona en el servidor (servidor Linux). No sé cuál es el problema real. Por favor, ayuda

  1. formulario que quiero enviar

<form class="forma" id="forma" method="POST" action="contact-form.php" name="myForm" autocomplete="off"> <div class="formWrapper"> <div class="group"> <input type="text" name="name" id="name"> <span class="highlight"></span> <span class="bar"></span> <label>Name</label> <p class="error-red"></p> </div> <div class="group"> <input type="text" name="eMail" id="eMail"> <span class="highlight"></span> <span class="bar"></span> <label>Email</label> <p class="error-red"></p> </div> <div class="group"> <input type="text" name="mobileNo" id="mobileNo"> <span class="highlight"></span> <span class="bar"></span> <label>Mobile no.</label> <p class="error-red"></p> </div> <div class="group"> <input type="text" name="message" id="message"> <span class="highlight"></span> <span class="bar"></span> <label>Message</label> </div> <div class="captchaWrapper"> <img src="captcha.php?rand=<?php echo rand(); ?>" id="captchaimgCont" style="margin-right: 14px;" alt="captcha"> <a href="javascript: refreshCaptcha();" class="clickTorefreshAnchor"> <i class="fa fa-refresh clickTorefresh" id="caprefresh"> </i> </a> <div class="captchaInputWrapper group"> <input type="text" id="6_letters_code" name="captcha"> <span class="highlight"></span> <span class="bar"></span> <label>Enter the code here:</label> <p class="error-red"></p> </div> </div> <div class="submit submitBtn" id="consubmit"> <button type="submit" name="sendmail" id="sendmail" class="sendMailBtn">Submit </button> </div> </div> <div class="clear"></div> </form>

  1. mi código jquery ajax

jQuery(document).ready(function() { jQuery("#forma").submit(function(e) { e.preventDefault(); e.stopImmediatePropagation(); jQuery(''#sendmail'').html(''Please wait...''); jQuery.ajax({ type: "post", url: ''./contact-form.php'', data: jQuery("#forma").serialize(), dataType: "json", success: function(data) { jQuery(''p.error-red'').html(''''); if (''success'' == data.result) { //jQuery("#forma")[0].reset(); //jQuery(''#response'').append(''<p class="successMessage">'' + data.msg + ''</p>''); // jQuery(''#sendmail'').html(''Submit''); window.location.href = "https://www.mrpmediaworks.com/thanks.php"; } if (''error'' == data.result) { var arr = data.msg; var element_arr = data.fieldname; count = ''0''; jQuery.each(arr, function(index, value) { if (value.length != 0) { jQuery(''input[name='' + element_arr[count] + '']'').parent(''.group'').find(''p.error-red'').html(value); } count++; }); jQuery(''#sendmail'').html(''Submit''); } } }); return false; }); });

  1. mi código php

<?php session_start(); require_once(''config.php''); $email = ''''; $fieldname = array(); $msg = array(); $result = ''''; $count = ''''; $name = $_Post["name"]; $contact = $_Post["mobileNo"]; $email = $_Post["eMail"]; $msg_query = $_Post["message"]; $captcha = $_Post["captcha"]; echo $name; die(); ?>

solo prueba el código

el mismo código funciona con get

Intenté eliminar la acción del formulario y es posible que se combinen pero que funcionen. después de editar

4. .htaccess file # browser requests PHP RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}/ /([^/ ]+)/.php RewriteRule ^/?(.*)/.php$ /$1 [L,R=301] # check to see if the request is for a PHP file: RewriteCond %{REQUEST_FILENAME}/.php -f RewriteRule ^/?(.*)$ /$1.php [L]

este es el único contenido en mi archivo htaccess


Creo que has estropeado tu archivo htaccess. si es posible, pegue aquí su código de archivo .htaccess.

Editando mi respuesta

Bingo encontró el problema que está eliminando la extensión .php de sus archivos, pero en la solicitud ajax ha publicado datos en contact-form.php. Intente eliminar la extensión .php de su solicitud de ajax. Pruébalo espero que esto ayude.


Simplemente haga una función para manejar la solicitud de ajax. Luego, procese la solicitud dentro de la función. Para hacer eso,

Elimina la acción de la forma. y enviar la solicitud a la función en el envío ver el siguiente, por ejemplo.

<form class="forma" id="forma" method="POST" action="javascript:void(0);" name="myForm" autocomplete="off" onsubmit="sendContactRequest();">

Entonces el ~ sendContactRequest () ~ manejará su solicitud de Ajax.

function sendContactRequest(){ jQuery(''#sendmail'').html(''Please wait...''); $.post("contact-form.php",jQuery("#forma").serialize(),function(result,status,xhr) { if( status.toLowerCase()=="error".toLowerCase() ) { alert("An Error Occurred.."); // or do something that you can handle the error request. }else { //success response } }); }

Por favor, intente esto. En mi caso, funciona perfectamente.