Comunidad de diseño web y desarrollo en internet online

problema al insertar mas de 2 variables en ajax jquery via POST or GET

Citar            
MensajeEscrito el 24 Oct 2013 05:01 am
hola a todos , el dilema es el siguiente
estoy tratando de insertar 4 variables en la base de datos $ id, $username(quien escribio el post), $name(de quien escribe un comentario) y $comentario

el $id del post lo obtengo de la url http://dominio.com/comentario.php?id=23
despues obtengo el $username de quien escribio el post,
despues $name una vez iniciado sesion de quien quiere publicar un comentario,
y por ultimo el comentario $comentario todo eso lo tengo en input y textarea listo para enviarlo via post para insertarlo en la base de datos.
el problema es que de las 4 variables solo se insertan maximo 2 en la base de datos. he tratado via POST y GET.

este el el codigo que tengo en la pagina principal
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>

<script type="text/javascript">
$(document).ready(function() {


$("#FormSubmit").click(function (e) {
e.preventDefault();
if($("#comentario").val()==='')
{
alert("ingresar texto!");
return false;
}

var myData ='id='+ $("#id").val()+'&comentario='+ $("#comentario").val();
jQuery.ajax({
type: "GET", // Post / Get method
url: "response.php", //Where form data is sent on submission
dataType:"HTML", // Data type, HTML, json etc.
data:myData, //Form variables
success:function(response){
$("#responds").append(response);
},
error:function (xhr, ajaxOptions, thrownError){
alert(thrownError);
}
});
});

});
</script>

<div class="content_wrapper">

<ul id="responds">

<?php

//include db configuration file
include_once("dbc.php");
$id = $_GET['id'];
$query = 'SELECT id,comentario FROM comentarios WHERE `id` ="'.$id.'"';
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$pass = $row['id'];
$comentario = $row['comentario'];

echo"<li id='item_'>";
echo $pass;
echo $comentario;
echo "</li>";


}?>


</ul>
<div class="form_style">
<input type="hidden" name="id" id="id" value="<?php echo $id;?>">
<textarea name="comentario" id="comentario" cols="45" rows="5"></textarea>
<input id="FormSubmit" name="upload" type="button" value="Comentar">

</div>
</div>

//ahora en la pagina response.php
//tengo el codigo para insertar en la base de datos

<?php
//include db configuration file
include_once("conexion.php");
$id = $_GET['id'];
$query = 'SELECT `id` FROM setting WHERE `id` ="'.$id.'"';
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result))
$paso = $row['id'];

$paso = $_GET['id'];
$comentario = $_GET['comentario'];
mysql_query("INSERT INTO comentarios(id,comentario) VALUES('$paso','$comentario')");?>
<?php
echo "<li id='item_'>";
echo $pass;
echo $username;
echo $name;
echo $comment;
echo "</li>";?>



la pregunta es como tengo que hacer para agregar las variables $name y $username para despues insertarlas en la base de datos.

//lo primero que hice fue agregarlas en
var myData ='id='+ $("#id").val()+'name='+ $("#user_name").val()+'$username='+ $("#com_name").val()+'&comentario='+ $("#comentario").val();

//despues agregue en los input

<input type="text" name="id" id="id" value="<?php echo $id;?>">
<input type="text" name="user_name" id="user_name" value="<?php echo $name;?>">
<input type="text" name="com_name" id="com_name" value="<?php echo $username;?>">
<textarea name="comentario" id="comentario" cols="45" rows="5"></textarea>
<input id="FormSubmit" name="upload" type="button" value="Comentar">


//despues en la pagina response.php agregue las variables
$paso = $_GET['id'];
$name = $_GET['user_name'];
$username = $_GET['com_name'];
$comentario = $_GET['comentario'];
mysql_query("INSERT INTO comentarios(id,user_name,com_name,comentario) VALUES('$paso','$name','$username','$comentario')");?>


el problema es que solo ingresa en la tabla de la base de datos las variables $id y $comentario, pero las variables $name y $username, no ingresan, incluso si se dan cuenta en los input tengo las variables con type="text" en la primera pagina para verificar que tomo las variables antes de enviarlas a la pagina response.php para que se inserten en la base de datos. pero no se ingresan o no pasan a la pagina response.php, he tradado con metodo GET Y POST.

espero haberme sido claro en la explicacion , algo que este haciendo mal o que no sepa.
saludos.

Por nihao

46 de clabLevel



 

chrome
Citar            
MensajeEscrito el 24 Oct 2013 06:20 am
Hola al enviar las múltiples variables con ajax es de esta forma:

Primero asigna una variable para cada valor de esta forma:

Código Javascript :

var valor1 = $("#id").val();
var valor2 = $("#user_name").val();
var valor3 = $("#com_name").val(); 
var valor4 = $("#comentario").val(); 

Después envías las variables con ajax de esta forma,

Código Javascript :

data: {variable1: valor1, variable2: valor2, variable3: valor3, variable4: valor4 },

Y con php las recibes asi:

Código PHP :

$valor1 = $_POST['variable1'];
$valor2 = $_POST['variable2'];
$valor3 = $_POST['variable3'];
$valor4 = $_POST['variable4'];


Pd: yo he utilizado post, y todo bien.

Saludos!

Por alejandroC

34 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.