Почему URL-адрес добавляется в запрос ajax с использованием отправки формы jquery? - PullRequest
1 голос
/ 02 ноября 2011

Застрял с JQuery AJAX формы отправки Вот фрагмент кода:

Javascript / HTML Code:

<form action="">
<button type="submit" class="submit-button-minus" id="submit-minus" name="submit-minus"><span class="hide-text"></span></button>                
</form>

<form action="">
<button type="submit" class="submit-button-plus" id="submit-plus" name="submit-plus"><span class="hide-text"></span></button>
</form>

<!--store current page id from php variable into javascript variable-->
<?php echo "<script> jsPageID = " .$page_id. ";</script>"; ?>                   
<?php echo "<script> jsUsername = '" .$_SESSION['username']. "' ;</script>"; ?>     


<script type="text/javascript">
$('document').ready(function(){

jsPageID = parseInt(jsPageID); 
$('#submit-minus').click(function(){
jsPlusOrMinus = "minus";                    
ajax_painting_rating(jsPlusOrMinus, jsPageID, jsUsername);                  
});

$('#submit-plus').click(function(){
jsPlusOrMinus = "plus";
ajax_painting_rating(jsPlusOrMinus, jsPageID, jsUsername);
});

function ajax_painting_rating(jsPlusOrMinus, jsPageID, jsUsername)
{
$.get(
'ajax-painting-rating.php', 
{plus_or_minus: jsPlusOrMinus, page_id: jsPageID, user_name:jsUsername }, 
function(data){     
$('#rating-value').html(data);
}
);
}

});

</script>

Теперь вот код PHP:

<?php
include("include_db_connection.php");

$get_plus_or_minus = $_GET['plus_or_minus'];
$get_page_id = $_GET['page_id'];
$get_user_name = $_GET['user_name'];

if($get_plus_or_minus == "plus")
{

    $rating=1;
    $rating_insert_query =  "INSERT INTO ..............";       

    $rating_insert_result = mysqli_query($db_conn, $rating_insert_query);
}

if($get_plus_or_minus=="minus")
{

    $rating=-1;
    $rating_insert_query =  "INSERT INTO ..............";       
    $rating_insert_result = mysqli_query($db_conn, $rating_insert_query);
}

/* more queries here....*/  
/*this is what i will be returning back from the server, to the ajax request*/

echo $FINAL_RESULT;

?>

Теперь, когда я пытаюсь выполнить приведенный выше код, форма "иногда" отправляется в db. Я не могу придумать причину, почему «иногда».

Кроме того, есть некоторые данные, которые каким-то образом добавляются в URL после обработки запроса. Пример: если исходный URL-адрес веб-страницы перед выполнением запроса ajax выглядит примерно так: «page.html? Id = 6», то при выполнении запроса ajax URL-адрес страницы добавляется, как показано ниже:

"page.php? Id = 6 & submit-minus =" (если кнопка submit-minus использовалась для вызова ajax-запроса)

Я не понимаю, почему в URL добавляется знак минус, а также, когда данные редко добавляются в БД.

Спасибо за ваше время.

1 Ответ

2 голосов
/ 02 ноября 2011

Запросы vars submit-minus и submit-plus добавляются к URL-адресу, потому что вы выполняете GET, и GET будет принимать любые переменные формы для отправки и добавлять их к URL-адресу.

Я не вижу достаточно кода вашей базы данных, чтобы сказать вам, почему он иногда работает, а иногда нет, но вы будете писать в базу данных только в том случае, если установлен $ get_plus_or_minus.Таким образом, если ваш URL говорит «submit-minus =» без какого-либо значения, вы не будете писать в базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...