Devolver valores múltiples al pasar argumentos a través de AJAX, PHP y MYSQL
Frecuentes
Visto 930 equipos
2
Estoy desarrollando búsqueda basada en ajax, esta es una demostración de cómo será. Estoy enfrentando un problema al devolver el resultado. Necesito mostrar el resultado 2 veces. Pero solo se muestra una vez. A continuación se muestra mi código HTML
<form action="" method="post" id="demoform">
<select style="width:250px;padding:5px 0px;color:#f1eedb;" name="product" class="product">
<option>TENNIS</option>
<option>FOOTBALL</option>
<option>SWIMMING</option>
</select>
</form>
<div id="result">Display Result Here</div>
Uso el siguiente script Ajax para recuperar datos: -
$(".product").change(function(){
$.ajax({
type : 'POST',
url : 'post.php',
dataType : 'json',
data: {
product : $(".product option:selected").text(),
},
success : function(data){
$('#result').removeClass().addClass((data.error === true) ? 'error' : 'success')
.html(data.msg).show();
if (data.error === true)
$('#demoForm').show();
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
$('#result').removeClass().addClass('error')
.text('There was an error.').show(500);
$('#demoForm').show();
}
});
});
El archivo post.php tiene el siguiente código:-
<?php
require('connect.php');
$get_select = $_POST[product];
if($get_product!='FOOTBALL'){
$return['error'] = true;
return['msg'] = 'Incorrect Selection';
echo json_encode(return);
}
else {
$return['error'] = false;
$i=0;
while($i<2) {
return['msg'] = $get_product;
}
echo json_encode(return);//Returns only one result.
}
?>
Necesito mostrar el resultado dos veces como "CRICKET CRICKET", pero solo se muestra una vez. ¿Qué debo hacer para obtener tanto el resultado?
2 Respuestas
0
¿Es posible que esta línea confunda php?
mientras ($i<2) {
return['mensaje'] = $get_product;
}
¿Debería ser $retorno? Usar una palabra reservada como 'return' también es un poco dudoso.
Respondido el 01 de junio de 12 a las 13:06
0
Por favor cambie el siguiente código:
else {
$i=0;
$messageToReturn = "";
while($i<2) {
$messageToReturn .= $get_product; //Append to your variable
}
return json_encode($messageToReturn); //Returns the result
}
Sugeriría cambiar el while a un bucle for. En ese caso obtendrás esto:
else {
$messageToReturn = "";
for($i = 0; $i < 2; $i++)
{
$messageToReturn .= $get_product; //Append to your variable
}
return json_encode($messageToReturn);
Si conoce las veces que necesita repetir, use un ciclo for. El tiempo nunca termina. Para que pueda obtener un posible desbordamiento de pila ...
Respondido 28 Abr '14, 09:04
Tengo algunas preguntas sobre PHP: (1) $get_product no existe. ¿Quiere decir $get_select? (2) todos esos lugares donde dices 'return', ¿quieres decir '$return'? (3) ¿Por qué está poniendo $get_product en $return['msg'] dos veces? ¿Es ahí donde cree que obtendrá ambos resultados? Si selecciona 'FÚTBOL', debería obtener algo como {'error':'false','msg':'FOOTBALL'}. - Norm MacLennan
@adwitya-media Mire las respuestas y marque la correcta por favor :) - eL-Prova