Xavier
Recuperar input via jquery + ajax
20 de October de 2017 às 07:45AM
Olá Pessoal !!!
Como que eu faço para recuperar via jquery, o valor de um input em uma outra página.php?
Eu tenho um formulário com uma combo e os códigos dos produtos. Ao selecionar um dos códigos dos produto, então dentro de uma div, ele carrega as informações do produtos os quais busco no banco de dados e organizo dentro de uma tabela html. Ao carregar esses dados via loop, então ele cria o campo input "Definir a Largura da Porta:" mostrado logo abaixo. Assim que o usuário seleciona o produto e define a largura, então envia para o carrinho de compras.
O que eu não estou conseguindo capturar: o valor desse input digitado pelo usuário e enviá-lo para o carrinho. Alguém pode me ajudar?
Desde já agradeço.

Esse código está dentro do arquivo mostra_itens.php, que por sua vez é carregado dentro do formulário produtos.php
Vou passar o algoritmo ( passo a passo) para esclarecer melhor:


(parte do código)

arquivo: produto.php

Aquí eu seleciono o valor código do produto através de uma combo.

<form method="POST" action="" id="f_res">

<select name="cbo_uds" size="1" id="cbo_uds">
<option value="0" selected="selected">Selecione o ítem...</option>
<option value="VP-01">VP-01</option>
<option value="VP-02">VP-02</option>
<option value="VP-03">VP-03</option>
</select>

</form>






arquivo: mostra_item.php
* Só lembrando que este arquivo retorna os dados dentro da página: produtos.php

<body>
<form method="POST" action="" id="enviar_para_carrinho">

<!-- criando uma tabela html...-->
<table id="t_pics"width="1100" height="400" border="0" align="center">

<?php
if(isset($_POST['cbo_uds'])){

//Conecta o banco de dados e traz as informações dos produtos...
include("conexao.php");
$pdo=conectar();
try{

$item = $_POST['cbo_uds']; //recuperando o item selecionado na combo...
$codigo=$item;

//Buscando dados...
$sql=$pdo->prepare("SELECT * FROM produtos WHERE codigo = :codigo");
$sql->bindParam(':codigo', $_GET['codigo'], PDO::PARAM_STR);
$sql->execute(array('codigo' => $codigo));

while($linha=$sql->fetch(PDO::FETCH_ASSOC)){
$id=$linha["id"];
$codigo=$linha["codigo"];
$imgpath=$linha["imgpath"];
$img="<img src='img/vpjs/". $imgpath ."'";
$cor=$linha["cor"];
$aplicacao=$linha["aplicacao"];
$unit=$linha["unit"];
}

echo '<tr>';
echo'<td colspan="2" rowspan="8" id="q1">'. $img . '</td>';
echo '<td height=45"></td>';
echo '</tr>';
echo '<tr>';
echo '<td height=45">' ." Código: ". $codigo . '</td>';
echo '</tr>';

echo '<tr>';
echo '<td height="45">' . "Cor: " . $cor . '</td>';
echo '</tr>';

echo '<tr>';
echo '<td height="45">' . "Valor: " . $unit . '</td>';
echo '</tr>';

echo '<tr>';
echo '<td width="500" height="48">' . "Aplicação: ". $aplicacao . '</td>';
echo '</tr>';
echo '<tr>';
echo '<td height="45">'."Definir a Largura da Porta: ".'<input type="text" name="deflarg" id="deflarg" size="5" maxlength="5"/>'. " cm".'</td>';
echo '</tr>';

echo '<tr>';
//echo '<td height="45">' . '<input type="submit" name="comprar" value="COMPRAR"/>'.'</td>';
//echo '<td height="45">' . '<a href="carrinho.php?acao=add&id='.$linha["id"].'">Comprar</a>'.'</td>';
echo'<td height="45">' . '<a href="carrinho.php?acao=add&id='.$id.'">
<img src="img/comprar-1.png" id="add_car" height="70" width="200" align="center" title="Adicionar ao Carrinho"></a>'.'</td>';
echo '</tr>';

echo '<tr>';
echo '<td height="45"></td>';
echo '</tr>';

//fechando a conexão
$pdo = null;
}
catch(PDOExcception $erro)
{
echo $erro->getmessage();
}
}
?>
</tr>
</table>
</form>
</body>

O objetivo agora é enviar o valor da largura da porta para o carrinho. O carrinho está funcionando perfeitamente. Somente esse input que não está enviando.
Tentei até com ajax, mas não obtive êxito ainda. Está faltando alguma coisa....
Alguém pode me dar uma luz ?

No arquivo mostra_item.php, estou usando esse jquery+ajax ou json... só que retorna var_dump = size 0.

<script type="text/javascript">
$(document).ready(function(){
$("#add_car").click(function(e){
var codigo = $("#deflarg").val();
//alert(largura);
$.post("enviar_para_carrinho.php", {codigo:codigo},
function(data){
$("#deflarg").val(data.name);
}, "json");
//alert(largura);
});
//});
});
</script>
Trambulhao
Re: Recuperar input via jquery + ajax
03 de November de 2017 às 01:37PM
O código que você postou tem algumas partes desnecessárias (caso do loop) e alguns erros também. Apenas corrigi o código.

<?php
$codigo = filter_input(INPUT_POST, 'cbo_uds');

if (!empty($codigo)) {
include("conexao.php");
$pdo = conectar();

try {
//Buscando dados...
$sql = $pdo->prepare("SELECT * FROM produtos WHERE codigo = :codigo");
$sql->bindParam(':codigo', $codigo, PDO::PARAM_STR);
$sql->execute();
$result = $sql->fetch(PDO::FETCH_ASSOC); // array dados do código
$pdo = null;
} catch (PDOExcception $e) {
echo $e->getMessage();
}
}
?>
..
<body>
<form method="POST" action="" id="enviar_para_carrinho">

<!-- criando uma tabela html...-->
<table id="t_pics"width="1100" height="400" border="0" align="center">

<tr>
<td colspan="2" rowspan="8" id="q1"><img src="img/vpjs/<?php echo result['imgpath'] ?>"></td>
<td height="45"></td>
</tr>

<tr>
<td height="45">Código: <?php echo $result["codigo"] ?></td>
</tr>

<tr>
<td height="45">Cor: <?php echo $result["cor"] ?></td>
</tr>

<tr>
<td height="45">Valor: <?php echo $result["unit"] ?></td>
</tr>

<tr>
<td width="500" height="48">Aplicação: <?php echo $result["aplicacao"] ?></td>
</tr>

<tr>
<td height="45">Definir a Largura da Porta: <input type="text" name="deflarg" id="deflarg" size="5" maxlength="5"> <span id="def"></span></td>
</tr>

<tr>
<td height="45"><input type="submit" name="comprar" value="COMPRAR"></td>
<td height="45"><a href="carrinho.php?acao=add&id=<?php echo $result["id"] ?>">Comprar</a></td>
<td height="45"><a href="carrinho.php?acao=add&id=<?php echo $result["id"] ?>">
<img src="img/comprar-1.png" id="add_car" height="70" width="200" align="center" title="Adicionar ao Carrinho"></a></td>
</tr>

<tr>
<td height="45"></td>
</tr>
</table>
</form>

<script>
$(document).ready(function(){
$("#add_car").click(function(e){
var codigo = $("#deflarg").val();
$.post("enviar_para_carrinho.php", {codigo:codigo}, function(data){
$("#def").html(data.name); // AQUI ESTÁ CONFUSO!!
}, "json");
});
});
</script>

</body>
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.