Ive пытался создать div на моей индексной странице, в которой onclick вызывает функцию js, которая будет отправлять данные на php-страницу для вычислений и запросов mysql. но не только мои инструменты для разработчиков Chrome показывают, что запрос POST даже не происходит, но страница просто обновляет минуту, я нажимаю кнопку отправки. мой обработчик события на главной странице РНР OnClick, , который должен привести к этой функции
function submitvote(uv){
$('#rank_IFC').html('<img src="ajax-loader.gif">').show();
var sortdata = $('ul.sort').sortable('toArray').join(',');
var url= "results.php";
$.post(url, {Tablename:uv, sortdata: sortdata}, function(){
$('#rank_IFC').html('').show();
});
}
, который должен привести к чем мой PHP условному,
<?php if(!defined('INCLUDE_CHECK')) die('You are not allowed to execute this file directly');
// Including file for the DB connection:
require 'connect.php';
// If the poll has been submitted:
$tablename=$_POST['Tablename'];
if($tablename=='IFC')
{
$userOrder=$_POST['sortdata'];
// 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,userOrder,Tablename)
VALUES ('".$_SERVER['REMOTE_ADDR']."',NOW(),NOW(),$userOrder,$tablename)");
// If the user has not voted before today:
if(mysql_affected_rows($link)==1)
{
mysql_query(' INSERT INTO `IFC` (id,votes) '.$str.'
ON DUPLICATE KEY UPDATE votes = votes+VALUES(votes)');
}
}
моей основной индекс страница в PHP. мой вопрос в том, почему не возникает запрос на отправку AJAX при вызове функции?
Вы смотрели запрос/ответ в консоли браузера? Кроме того, пожалуйста [остановите использование 'mysql_ *' функций] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php). Они больше не поддерживаются и [официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). Узнайте о [подготовленных заявлениях] (http://en.wikipedia.org/wiki/Prepared_statement) и подумайте об использовании PDO, [это не так сложно, как вы думаете] (http://jayblanchard.net/demystifying_php_pdo.html) , –
Как вы называете эту функцию? Вероятно, у вас также есть '
Да, по умолчанию он асинхронный. Вы должны явно сказать, что хотите синхронный вызов. Ваш код sql уязвим для [SQL-инъекций] (http://bobby-tables.com) и, вероятно, страдает от синтаксических ошибок, так как у вас абсолютно нет обработки ошибок, вы никогда не сможете сказать , –