在php中将值传递给我的函数

时间:2015-05-13 23:43:29

标签: php mysql ajax

我在从数据库中提取的表中有一个产品列表。 每个产品都有一个ALIQUOTA(= VAT,Tax)字段。 我希望能够修改分配给单个产品的等分数值。

我在实际的等分试样旁边做了一个下拉菜单,其中包含了我数据库的等分“表中所有允许的值。 (值为0.00,4.00,10.00,20.00)。 选择后,该值将被插入一个id为#34; aliquota_XXX"的只读输入文本字段中。 (其中XXX是与产品对应的ID)。 然后我想按下激活功能 save_modify 的按钮确认增值税来保存该值(此功能已存在于项目中)。 这是代码:

<select class="piccolo elemento_modulo_obbligatorio" id="aliquota_dropdown_<?php echo $row['rid']; ?>" name="aliquota_dropdown">
<?php 
$aliquote = "SELECT aliquota,id AS aid FROM aliquote ORDER BY aliquota ASC";
$result_aliquote = mysql_query($aliquote) or die("Invalid query: " . mysql_error());
while ($row_aliquote = mysql_fetch_array($result_aliquote)) {
echo '<option onclick=\'';
?>

$("#aliquota<?php echo $row['rid']; ?>").val("<?php echo $row_aliquote['aliquota']; ?>");

<?php
echo ';\' value="' . $row_aliquote['aid'] . '">' . $row_aliquote['aliquota'] . '</option>';
}
?>

</select>

<input autocomplete="off" type="text" class="class12" id="aliquota<?php echo $row['rid']; ?>" name="aliquota" readonly="readonly" value="" />
<input type="button" onclick="save_modify(&quot;aliquota&quot;,document.getElementById('aliquota_<?php echo $row['rid']; ?>').value,<?php echo number_format($row['aliquota'],2,".",","); ?>);" value="CONFIRM VAT" />

函数 save_modify 是:

function save_modify(cosa, valore_nuovo, valore_vecchio) {
    $.ajax({
        type: "GET",
        url: "ajax_salva_modifica_valore.php",
        data: "id_documento=" + <? php echo $_GET['id_documento']; ?> +"&cosa=" + cosa + "&id=" + id + "&valore_nuovo=" + valore_nuovo + "&valore_vecchio=" + valore_vecchio,
        cache: false,
        success: function(data) {
            $("#sezione_messaggi").html("Succesfully modified!");
        },
        beforeSend: function() {
            $("#sezione_loading").html("<img src='../images/ajax-loader.gif' />");
        },
        complete: function() {
            $("#sezione_loading").html("");
            post_modifica(id);
            carica_righe();
        }
    });
}

ajax_salva_modifica_valore.php 的那部分感兴趣的是:

<?php
session_start();
$cosa = $_GET['cosa'];
$array_id = split("_",$id);
$id_riga = $array_id[1];


$valore_nuovo = $_GET['valore_nuovo'];
$valore_vecchio = $_GET['valore_vecchio'];

if($cosa == "aliquota") {
    $modifica = "UPDATE righe_documenti
                 SET aliquota = '" . $valore_nuovo . "'
                 WHERE id = " . $id_riga;
    $result = mysql_query($modifica) or die("Invalid query: " . mysql_error()); 
}
?>

我不知道问题出在哪里,因为传递给函数的参数是正确的,但修改它没有应用...

有人可以帮我修理或尝试其他解决方案吗?

save_modify ajax_salva_modifica_valore.php 不是由我制作的,所以我认为它们是正确的(并且它们适用于编辑其他产品信息...... )

谢谢!

1 个答案:

答案 0 :(得分:0)

主要问题是number_format()将数字格式化为字符串,并且在您的情况下应该用双引号(&quot;)括起来。

<input type="button" onclick="save_modify(&quot;aliquota&quot;,this.id,$(&quot;#aliquota<?php echo $row['rid']; ?>&quot;).val(),&quot;<?php echo number_format($row['aliquota'],2,",","."); ?>&quot;);" value="CONFIRM ALIQUOTA" />

但是,通过查看其余代码,您似乎根本不需要number_format()

<input type="button" onclick="save_modify(&quot;aliquota&quot;,this.id,$(&quot;#aliquota<?php echo $row['rid']; ?>&quot;).val(),<?php echo $row['aliquota']; ?>);" value="CONFIRM ALIQUOTA" />