我正在研究一些从文本输入中获取值并将其传递给php变量的ajax。我有以下代码做我想要的,但它重复文本输入和按钮时,它将值传递给PHP,我无法弄清楚为什么,任何想法:
<html><head><title>Ajax Example</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
function callAjaxAddition() {
arguments0 = $("input[name='arg1']").val();
$.ajax({
type: "POST",
url: "refresh.php",
data: {arguments: arguments0},
success: function(data) {
$("#answer").html(data);
}
});
return false;
}
</script>
</head>
<body><div id="exampleForm">
<input name="arg1" /><div id="answer"></div>
<br />
<button onClick="callAjaxAddition()">Click Me to Add</button>
</div>
<?php
if(isset($_POST['arguments']))
{
$a = $_POST['arguments'];
echo $a;
var_dump($a);
}
?>
</body></html>
答案 0 :(得分:1)
您正在向其中包含html代码的php文件发送请求。所以它呈现当前的html,它有文本框。你把它放在answer
div中。这就是重复的原因。如果您向refresh.php发出请求,它不仅会响应整个页面echo $a;
部分。创建一个像service.php
和
<强> service.php 强>:
<?php
if(isset($_POST['arguments']))
{
$a = $_POST['arguments'];
echo $a;
}
?>
在ajax电话中使用service.php