2013-04-12 6 views
2

Я пробовал много разных вещей, и я не могу понять, почему кнопка отправки не работает при первом нажатии. Я удалил инструкции if из кода и все равно ему требуется два клика. При первом нажатии он обновляет страницу, которая является наиболее очевидной, когда вы нажимаете кнопку отправки, с которой вы должны прокручивать вниз. Код ниже повторяется примерно 27 раз на странице, но с разными песнями. Все они работают после второго щелчка, поэтому я уверен, что они правильно подключены. Также, когда вы нажимаете кнопку один раз, а затем, если вы нажмете на другой, он отправит первый, на который вы нажали.Кнопка отправки не работает при первом нажатии

У меня есть тестовая учетная запись на странице, если кто-то хочет посмотреть, как она выглядит на самом деле. http://www.saint57records.com/rewards/index.php Имя пользователя: Пароль Тест: Тест

<?php 
$resultstwo = mysqli_query($con,"Select * FROM users WHERE user_name ='$username'"); 
while ($row = mysqli_fetch_array($resultstwo)) 
{ 
extract($row); 
} 
?> 
<form method="post" action="index.php"> 
    <?php 
    //If submit form was clicked 
    if(isset($_POST['endo'])) { 
     //Server side validation for security purposes 
     if($points >= 100 AND $endo == 0 AND $savetheworldalbum == 0) { 
      mysqli_query($con,"UPDATE users SET points = points - 100 WHERE users.user_name = '$username' LIMIT 1"); 
      mysqli_query($con,"UPDATE users SET endo = 1 WHERE users.user_name = '$username' LIMIT 1"); 
     } 
    } 
    if ($points >= 100 AND $endo == 0 AND $savetheworldalbum == 0) { 
     echo '<input type="submit" name="endo" value="100pts">'; 
    } elseif ($endo == 1 OR $savetheworldalbum == 1) { 
     echo '<input type="submit" name="submit" value="100pts" disabled title="You already earned this track!">'; 
    } else { 
     echo '<input type="submit" name="submit" value="100pts" disabled title="You need at least 100 points for this download">'; 
    } 
    ?> 
</form> 

Это то, что выводит

<form method="post" action="index.php"> 
<input type="submit" name="endo" value="100pts"></form>              
+0

Может быть * 'disabled' *? –

+3

Пожалуйста, разместите полученный HTML, а не PHP. – j08691

+0

порой он будет работать в первый раз после внесения изменений, но потом он возвращается к тому, как это было, и я добавил, что рендеринг html –

ответ

1

Попробуйте разместить обработчик отправки вне формы (вверху файла html/php).

<?php 
if(isset($_POST['endo'])) { 
    //Server side validation for security purposes 
    if($points >= 100 AND $endo == 0 AND $savetheworldalbum == 0) { 
     mysqli_query($con,"UPDATE users SET points = points - 100 WHERE users.user_name = '$username' LIMIT 1"); 
     mysqli_query($con,"UPDATE users SET endo = 1 WHERE users.user_name = '$username' LIMIT 1"); 
    } 
} else { ?> 
<html> 
.` 
. 

+0

кнопка отправки ничего не сделала, когда я делал это –

1

Похоже, что вы устанавливаете переменную PHP $endo ПОСЛЕ решить, следует ли сделать кнопку отправить отключить или нет. Сначала прочитайте свой $_POST, соберите свои данные и , затем создайте свой HTML. Тем не менее, я не могу сказать, если вы не указали код, где установлен $ endo.

+0

это было так, и он все еще не работал, это было редактирование, которое я пытался проверить, если это сработает, я верну его и попробую –

+0

$ endo здесь $ resultstwo = mysqli_query ($ con, "Select * FROM users WHERE user_name = '$ имя пользователя "); \t while ($ row = mysqli_fetch_array ($ resultstwo)) \t { \t экстракт ($ row); \t} –

+0

Я обновил код, чтобы он сначала читал $ _POST, правильно ли он равен –

Смежные вопросы