使用href而不是输入

时间:2015-07-13 12:14:53

标签: javascript php jquery html

我有一个AJAX功能,而且我对AJAX不好。我想将值从PHP传递给AJAX。我设法通过使用:

来做到这一点
<input type="text" id="price" onclick='ajaxFunction()' value="<?php echo $id; ?>" />

然后在我的AJAX中:

document.getElementById('price').value;

但我想通过使用HTML a href来实现它。

任何人都可以帮我解决这个问题吗?

提前致谢!

1 个答案:

答案 0 :(得分:5)

anchor<a>代码没有value,而是innerHTML。使用这种方式:

<a id="price" href="#something">50.00</a>
document.getElementById('price').innerHTML; // 50.00
document.getElementById('price').getAttribute("href"); // #something

要设置这些值,您可以使用相同的东西:

document.getElementById('price').innerHTML = responseText;
document.getElementById('price').setAttribute("href", responseText);

和往常一样,最好以JSON作为好东西回复:

responseText = {
    "price": 50.00,
    "link":  '#something'
};

以上当PHP输出时,它将是:

<?php header ("Content-type: application/json"); ?>
{
    "price": 50.00,
    "link":  '#something'
}

您可以将其用作:

document.getElementById('price').innerHTML = responseText.price;
document.getElementById('price').setAttribute("href", responseText.link);

由于您添加了,我想添加此信息会让这个答案变得有价值。我不确定你是如何调用AJAX函数的,但是调用这种方式很棒。 jQuery有一个内置的AJAX函数,你可以使用它:

$.post("path/to/php", {data: to_be_sent}, function (responseText) {
    responseText = JSON.parse(responseText);
    $("#price").attr("href", responseText.link).html(responseText.price);
});

在这种情况下,阅读会容易得多:

$("#price").attr("href", responseText.link); // Gives you the #something
$("#price").html(responseText.price);        // Gives you the 50.00