这是一个我用于其他ajax更新函数的过程,但对于这个特定的实例,它不想工作。我不知道我的代码中是否遗漏了什么,或者查询字符串的一部分是url,需要在AJAX插件之前进行编码(我不知道这一点,也找不到任何信息,只是集思广益)。
当我直接访问php脚本并回显查询,然后在控制台模式下运行它时,它工作得很好。当我尝试使用AJAX访问它时,我得到了成功的响应,但数据库中的条目没有更新,所以我认为这意味着脚本没有正确运行。
这是我的代码:
AJAX
jQuery('#nl-details').on('click','#d-cl-change', function(){
var mls = jQuery('#d-mls').val(),
cl = jQuery('#d-cl-input').val(),
url = 'scripts/forms/cl/clchange.php?mls='+mls+'url='+cl;
jQuery('#test').html(url); //This is just for me to view the URL
jQuery.ajax({
url: url,
dataType: 'json',
success: function(data){
jQuery('#d-cl-save').fadeIn('200').delay('800').fadeOut('800');
jQuery('#d-cl-url').html('<a href="'+cl+'" target="_blank">Go to Listing</a>');
},
error: function(){
jQuery('#d-cl-fail').fadeIn('200').delay('800').fadeOut('800');
}
});
});
PHP
//Generic include for MYSQL Credentials
define('INCLUDE_CHECK',true);
require('../../c.php');
$url = mysqli_real_escape_string($link,urldecode($_GET['url']));
$mls = mysqli_real_escape_string($link,$_GET['mls']);
$query = "UPDATE `nht_actprop`
SET CLLINK = '".$url."'
WHERE MSTMLSNO = '".$mls."'";
$result = mysqli_query($link,$query);
echo $query;
mysqli_close($link);
在这行yor代码中,您缺少一个&
url = 'scripts/forms/cl/clchange.php?mls='+mls+'url='+cl;
我想应该是这样的
url = 'scripts/forms/cl/clchange.php?mls='+mls+'&url='+cl;
我知道您已经选择了最佳答案,但我只想与您分享我将如何处理这项任务。
我建议使用AJAX的类型选项通过GET发送数据,如下所示:
jQuery('#nl-details').on('click','#d-cl-change', function(){
var url = 'scripts/forms/cl/clchange.php';
jQuery('#test').html(url); //This is just for me to view the URL
jQuery.ajax({
url: url,
type: 'GET',
data: {
mls: jQuery('#d-mls').val(),
url: jQuery('#d-cl-input').val()
},
dataType: 'json',
success: function(data){
jQuery('#d-cl-save').fadeIn('200').delay('800').fadeOut('800');
jQuery('#d-cl-url').html('<a href="'+cl+'" target="_blank">Go to Listing</a>');
},
error: function(){
jQuery('#d-cl-fail').fadeIn('200').delay('800').fadeOut('800');
}
});
});
最棒的是,你根本不需要更改你的PHP
祝你好运!让我知道你的想法