ajax - ejemplos - post javascript
Dos solicitudes $.post una tras otra. La segunda solicitud $.post no se ejecuta (1)
Tengo una función javascript dentro de la cual tengo dos solicitudes $ .post. Ambas solicitudes $ .post deben ejecutarse. Pero algunas veces, la segunda solicitud $ .post no se ejecuta. ¿Cuál podría ser el motivo?
$.post()
es una forma abreviada de la estructura $ .ajax (). Por lo general, prefiero usar la estructura $.ajax()
porque:
- Es más fácil ver si me he perdido algo
- Puedo agregar parámetros más fácilmente, como
asynch: false,
- Cuando era nuevo en ajax, me resultó considerablemente más fácil solucionar esta estructura
En su caso, puede encontrar que su problema es más fácil de resolver en una estructura $.ajax()
, ya que sería más fácil ver que una segunda llamada ajax (que depende del resultado de una primera llamada ajax) debe suceder en el éxito función de la primera llamada ajax .
Aquí hay un ejemplo independiente (demasiado malo jsFiddle no puede manejar ajax ...):
TESTER.PHP
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(''#eml'').focus();
$(''#mybutt'').click(function() {
var $a = $(''#eml'').val();
var $b = $(''#pw'').val();
//alert(''Email: '' +$a+ '' Pass: '' +$b);
$.ajax({
type:"POST",
url: "yourphpfile.php",
data: ''email='' +$a+ ''&pass='' +$b,
success: function(data) {
alert(data);
var aData = data.split(''|'');
var name = aData[0];
var code = aData[1];
alert(''Name: '' +name+ '' Code: '' +code);
$.ajax({
type:"POST",
url: "yourphpfile.php",
data: ''name='' +name+ ''&code='' +code,
success: function(newdata) {
alert(newdata);
} //END success_ajax2
}); //END ajax() #2
} //END success_ajax1
}); //END ajax() #1
}); //END mybutt.click()
}); //END $(document).ready()
</script>
</head>
<body>
Email: <br />
<input type="text" id="eml" /><br />
Password: <br />
<input type="password" id="pw" /><br />
<input type="button" id="mybutt" value="Submit">
</body>
</html>
yourphpfile.php
<?php
if (isset($_POST[''email''])) {
$e = $_POST[''email''];
$p = $_POST[''pass''];
$name = ''Bob'';
$code = ''1234'';
$resp = $name .''|''. $code;
echo $resp;
}else if (isset($_POST[''name''])) {
$n = ''<h1>Here is something new</h1>'';
echo $n;
}