Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal estou com uma dúvida, como eu poderia calcular 2 valores de select consultando o valor no db na mesma função do ajax, seria assim select1 = pedidos select2 = extras, fiz o seguinte até agora,
pedidos.php
<form action="p_novos.php" method="POST">
<div class="form-group col-md-3">
<label for="data_p">Data</label>
<input type="date" class="form-control" id="data_pedido" name="data_pedido">
</div>
<div class="form-group col-md-3">
<label for="servicos">Serviços</label>
<select class="form-control" name="servicos" id="servicos" onchange="valorPedidos(this.value)">
<option value="Formatação Simples">Formatação Simples</option>
<option value="Formatação com Backup">Formatação com Backup</option>
<option value="Recuperação de Pendrive">Recuperação de Pendrive</option>
<option value="Recuperação de HD">Recuperação de HD</option>
</select>
</div>
<div class="form-group col-md-3" >
<label for="rec">Recuperação de Dados</label>
<select class="form-control" name="recDados" onchange="valorExtra(this.value)">
<option value="0">Sem Recuperação de Dados</option>
<option value="REC - 2GB">REC - 2GB</option>
<option value="REC - 8GB">REC - 8GB</option>
<option value="REC - 16GB">REC - 16GB</option>
<option value="REC - 16GB+">REC - 16GB+</option>
</select>
</div>
<div id="valor"></div>
<div class="form-group col-md-9">
<label for="obs">Observações</label>
<textarea class="form-control" name="obs" id="" cols="30" rows="10"></textarea>
<br>
<div class="form-group col-md-3">
<input type="text" id="nomep" name="nomep" value="">
<input type="submit" class="form-control" value="Fazer Pedido" >
</div>
</div>
</form>
<script>
function valorPedidos(str) {
if (str == "") {
document.getElementById("valor").innerHTML = "";
return;
} else {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("valor").innerHTML = this.responseText;
}
};
xmlhttp.open("GET","v_pedido.php?q="+str,true);
xmlhttp.send();
}
}
</script>
<script>
function valorExtra(str) {
if (str == "") {
document.getElementById("valor").innerHTML = "";
return;
} else {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("valor").innerHTML = this.responseText;
}
};
xmlhttp.open("GET","v_pedido.php?e="+str,true);
xmlhttp.send();
}
}
</script>
v_pedido.php
<?php
include 'conecta.php';
$e = strval($_GET['e']);
$q = strval($_GET['q']);
if ($q > 0) {
$sql = "SELECT * FROM tab_precos WHERE pedido = '".$q."'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0){
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
$valor1 = intval($row['valor']);
$valor2 = intval($row['extra']);
?>
<input class="input" type="text" value="<?php echo $valor1+$valor2 ?>" name="valor">
<?php
} echo "0 results";
}
}
if ($e > 0) {
$sql = "SELECT * FROM tab_precos WHERE pedido = '".$e."'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0){
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
$valor1 = intval($row['valor']);
$valor2 = intval($row['extra']);
?>
<input class="input" type="text" value="<?php echo $valor1+$valor2 ?>" name="valor">
<?php
} echo "0 results";
}
}
mysqli_close($conn);
?>
porém quando seleciono um select o outro recebe valor nulo, exemplo, select de servicos recebe $q logo retorna o valor do select extra ($e = 0), como eu poderia fazer para eles somarem os valores no input da div valor ?Carregando comentários...