У меня есть форма, которая при отправке (с использованием AJAX) возвращает кучу деталей клиента. Поле формы собирает идентификатор пользователя, отправляет и возвращает результаты. Я хотел бы использовать кнопку отправки, а не обменять в текстовом поле, но я не могу отправить значение текстового поля и вернуть что-либо.
Кажется, это должно быть просто, но я снова нуждаюсь в некоторой помощи.
Спасибо, @rrfive
Форма:
<form> <strong>Client ID:</strong> <input name="user" type="text" class="textBox" maxlength="10" /> <input type="submit" onclick="showUser(this.form); return false;"> </form>
JS:
<script type="text/javascript"> function showUser(str) { if (str=="") { document.getElementById("txtHint").innerHTML=""; return; } if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); } else { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("txtHint").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","includes/fetchUser.php?userID="+str,true); xmlhttp.send(); } </script>
в<script type="text/javascript"> function showUser(str) { if (str=="") { document.getElementById("txtHint").innerHTML=""; return; } if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); } else { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("txtHint").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","includes/fetchUser.php?userID="+str,true); xmlhttp.send(); } </script>
PHP:
<?php define('INCLUDE_CHECK',true); include 'config.php'; $userID=$_GET["userID"]; $sql="SELECT * FROM users WHERE ID = '".$userID."'"; $result = mysql_query($sql); $returned_rows = mysql_num_rows ($result); if ($returned_rows == 0){ echo '-- No results found --'; } else { while($row = mysql_fetch_array($result)) { echo "<div class='column'>"; echo '<label>Name:</label>' . $row['lastName'] . ' echo '</div>'; } } mysql_close($con); ?>
Вам не нужно передавать всю форму, просто «пользовательский» вход.
Форма:
<form name="myform"> <strong>Client ID:</strong> <input name="user" type="text" class="textBox" maxlength="10" /> <input type="submit" onclick="showUser(document.myform.user.value); return false;"> </form>
На своем PHP, пожалуйста, помните, что вам нужно дезинфицировать входные данные перед использованием в запросе базы данных. Читайте на mysql_real_escape_string или подготовленных инструкциях
<form onsubmit="return false;">