簡體   English   中英

使用ajax從php發送和返回值時,為什么會得到javascript和html代碼?

[英]Why am i getting javascript and html code when using ajax to send and return value from php?

今天,我使用以下代碼嘗試了Ajax。 邏輯似乎是正確的,因為成功函數正在觸發,但是我無法從php文件獲取返回值,相反,當我警告響應時,我正在獲取Javascript和html代碼。

example1.php

 <?php
    echo $_POST['name'];
 ?>
<form action="?" method="post">
<input type="text" id="d1" name="name" value="">
<input type="text" id="d2" name="place" value="">
<input id="target" type="submit" name="submit" value="send">
</form> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$("#target").click(function()
{
var data1=$("#d1").val();
var data2=$("#d2").val();
$.ajax
({
type:"POST",
url:"example1.php",
data:{name:data1,place:data2},
success:function(msg)
{
alert(msg);
}
});
return false;
});
});
</script>

當我運行example1.php時,它顯示警告消息,如下所示。

<form action="?" method="post">
<input type="text" id="d1" name="name" value="">
<input type="text" id="d2" name="place" value="">
<input id="target" type="submit" name="submit" value="send">
</form> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$("#target").click(function()
{
var data1=$("#d1").val();
var data2=$("#d2").val();
$.ajax
({
type:"POST",
url:"arithmetic.php",
data:{name:data1,place:data2},
success:function(msg)
{
alert(msg);
}
});
return false;
});
});
</script>

為什么我從example1.php而不是名稱和位置值中獲取此信息?

考慮到問題已更改的更新

您將發布到表單所在的文件,因此您的響應將在該頁面中包含HTML代碼。 您必須發布到另一個僅響應所需內容的PHP文件,或者將當前文件更改為在發布某些數據時做出不同響應。


您的ajax請求不會發送到response.php ,因為您告訴jQuery發布到其他URL:

url:"arithmetic.php",

將其更改為response.php。


為了確保始終使用ajax進行發布,您應該綁定到表單的submit事件,而不是單擊Submit按鈕:

$('form').submit(function(e) {

    // ajax stuff

    // prevent default (submit)
    return false;
});

使用當前代碼,如果您將注意力集中在這些輸入字段之一上,則按Enter即可提交不帶ajax的表單。

如下更改您的響應代碼。 編寫響應后,您需要停止執行。

<?php 
if(isset($_POST['name'])) {
echo $_POST['name']; 
echo $_POST['place']; 
exit(0); 
} 
?> 

將網址更改為url:"response.php"

並像這樣在responce.php中編寫代碼

$name=$_POST["name"];
$place=$_POST["place"];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM