2015-05-31 3 views
1
<? foreach($words as $word): ?> 
<li> 
    <form action="javascript:alert('success!');"> 
     <div> 
     <input type="text"/> 
     <input type="submit"/> 
     </div> 
    </form> 
</li> 
<? endforeach; ?> 


<script> 
$(document).ready(function(){ 
    $("form").submit(function(event) { 
    if ($("input:first").val() === "<?php $word['Word']['words'] ?>") { 
     $(spans).text("Validated...").show(); 
     return; 
     }}) 
    }); 
</script> 

Этот сценарий должен сравнить каждые слова от входа в «словах» (таблицу в MySQL), но когда я пишу что-то в входе и нажмите отправить - они работают все представить. Как создать уникальную форму и вклад для каждого слова в эту форму?JQuery PHP Еогеасп

+1

Вы должны прочитать на основном javascript, и особенно ключевое слово this. – adeneo

+0

Использует ли php 'foreach()' не принимать фигурные скобки '{...}'? –

+1

@ Roamer-1888 вы можете использовать 'foreach() {...}' или 'foreach(): ... endforeach;' в PHP. Последнее часто используется в шаблонах, где большая часть кода представляет собой разметку HTML. – drmonkeyninja

ответ

0

Я не думаю, примеров здесь будет работать, поскольку ни одно из них не сравнивает входное значение со словом цикла foreach. Попробуйте следующее:

<? foreach($words as $word): ?> 
<li> 
    <form data-word="<? echo $word; ?>"> 
    <div> 
     <span class="validation"></span> 
     <input class="word" type="text"> 
     <input type="submit"> 
    </div> 
    </form> 
</li> 
<? endforeach; ?> 

<script> 
$(document).ready(function() { 
    $('form').submit(function(event) { 
    var $form = $(this), 
     value = $form.find('.word').val(), 
     word = $form.data('word'), 
     valid = word === value, 
     message = valid ? 'Validated...' : 'Not valid.'; 

    $form 
     .find('.validation') 
     .html(message) 
     .show(); 

    event.preventDefault(); 
    }); 
}); 
</script> 
+0

Спасибо! действительно помогли – andrzej

0

Ваш код должен быть улучшен:

$(document).ready(function(){ 
    $("form").submit(function(event) { 
     // add a context where we should find `input:first` 
     if ($(this).find("input:first").val() === "<?php $word['Word']['words'] ?>") { 
      $(spans).text("Validated...").show(); 
      return; 
    }}) 
}); 

А также вы должны echo PHP-значение здесь:

"<?php echo $word['Word']['words'] ?>" 

иначе это будет просто ""

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