2013-08-21 29 views
-1

这是我用于其他ajax更新函数的过程,但对于此特定实例,它不想工作。我不知道我是否在我的代码中丢失了某些东西,或者查询字符串的一部分是否为url,并且需要在AJAX插件之前进行编码(不知道这一点,并且找不到任何信息就此,只是集思广益)。php/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); 
+0

使用'mysqli_error()'来查看查询是否运行出 –

+0

它不会返回任何错误。 – Plummer

+0

'从php代码中'echo mysqli_error()'并尝试''alert'或'console.log'成功回调中的'data'。 – mithunsatheesh

回答

1

我看你选择了一个最好的答案了,不过我只是想与大家分享我会怎么解决这个任务。

我会建议使用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!让我知道你的想法

+0

有趣的数据格式。绝对清洁。从来没有这样做过。我想你不必为了使用'POST'而改变太多(除了PHP脚本)。使用'$ _POST'和'$ _GET'有什么好处?我以前问过,但从来没有得到明确的答案。另外,我假设你在关闭数据括号后缺少'',''。 – Plummer

+0

我很高兴看到你考虑我的答案! :)是的,我错过了一个逗号,现在它已经修复。你对PHP的一面是绝对正确的。至于整个POST和GET的事情,我仍然每天都在学习新的东西。简而言之,我认为你应该使用POST,因为你正在使用你的数据更新数据库,但我认为这是值得你花时间来研究和理解HTTP/REST,或者只是去这个链接,并获得一些指针http://blog.teamtreehouse .com/the-definitive-guide-to-get-vs-post – MonkeyZeus

+0

一直在寻找更好的方式来完成任务。创可贴修复不是我的风格。谢谢您的帮助! – Plummer

2

在此行中的侑代码你缺少一个&

url = 'scripts/forms/cl/clchange.php?mls='+mls+'url='+cl; 

我认为它应该是这样的

url = 'scripts/forms/cl/clchange.php?mls='+mls+'&url='+cl; 
+0

谢谢!我知道它必须是AJAX的东西。 – Plummer