【问题标题】:how do you connect an ajax post to a specific conditional in PHP file?如何将 ajax 帖子连接到 PHP 文件中的特定条件?
【发布时间】:2015-05-22 18:07:42
【问题描述】:

所以我在我的使用 AJAX 的 html 文件中编写了一个名为 onclick 的函数,但我希望这篇文章转到 mysql 中的特定表。

   $('#submitIFC').click(function(e) {

 var request;

 if (window.XMLHttpRequest) {
  request = new XMLHttpRequest();
 } else {
  request = new ActiveXObject("Microsoft.XMLHTTP");
 }
   var opinionIFC = $('ul.sort').sortable('toArray').join(',');

request.onreadystatechange = function() {

    if ((request.readyState===4) &&(request.status===200))  {

     var return_data = request.responseText;
     document.getElementById('rank_ul').innerHTML= 'return_data';


    // Preventing the default action triggered by clicking on the link
    e.preventDefault();


    e.preventDefault();
    }//end of if
    }//end of onreadystatechange function    


//send requested movie to php file which will send to the external server
request.open("POST", "results.php", true);
request.send(opinionIFC);

document.getElementById('rank_ul').innerHTML='<img src="ajax-loader.gif">';

});

但是,如果有条件,将其连接到我的 php 似乎存在问题,我尝试复制我的 request.send() 上的内容,就像这样

   if($_POST['opinionIFC'])
 {echo 
// The data arrives as a comma-separated string,
// so we extract each post ids:
$data=explode(',',str_replace('li','',$_POST['sortdata']));

// Getting the number of objects
list($tot_objects) = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM sort_objects"));

if(count($data)!=$tot_objects) die("Wrong data!");

foreach($data as $k=>$v)
{
    // Building the sql query:
    $str[]='('.(int)$v.','.($tot_objects-$k).')';
}

$str = 'VALUES'.join(',',$str);

// This will limit voting to once a day per IP:
mysql_query("   INSERT INTO `sort_votes` (ip,date_submit,dt_submit)
                VALUES ('".$_SERVER['REMOTE_ADDR']."',NOW(),NOW())");

//  If the user has not voted before today:
if(mysql_affected_rows($link)==1)
{
    mysql_query('   INSERT INTO `sort_objects` (id,votes) '.$str.'
                    ON DUPLICATE KEY UPDATE votes = votes+VALUES(votes)');
}

}

为什么 ajax post 请求没有过滤到我的 php 文件?

非常感谢,任何帮助都非常感谢。

【问题讨论】:

  • 你在使用 jquery,为什么你在滚动你自己的 ajax 代码?所有这些就绪状态的垃圾都可以用单个$.ajax() 替换。而且您的 php 代码容易受到sql injection attacks 的攻击。

标签: javascript php jquery mysql ajax


【解决方案1】:

你没有发送 opinionIFC 参数,试试:

request.send('opinionIFC=' + opinionIFC);

你还需要设置Content-type

request.setRequestHeader("Content-type","application/x-www-form-urlencoded");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多