#php #ajax #login #radio-button
#php #ajax #аутентификация #переключатель
Вопрос:
HTML:
<form style="margin:5px 0;" action="#" method="post">
Buyer <input type="radio" name="addType" value="Buyer" />
amp;nbsp;amp;nbsp;Merchant <input type="radio" name="addType" value="Merchant" />
</form>
<form id="NewBuyerRegHp" method="post" action="check.php">
Username or Email: <input type="text" name="userOrEmail" class="UserLogin" value="Username" onFocus="clearText(this)" /> <br />
Password: amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;<input type="password" name="userPass" class="UserLogin" value="Password" onFocus="clearText(this)" /> <br />
<input type="submit" name="SubmitNewBuyerHp" value="Secure Login" />
</form>
PHP
$NewBuyerLoginCheck = mysql_query("SELECT uUName, uEmail, uUPass, dynamSalt FROM User WHERE uUName OR uEmail = '".mysql_real_escape_string($_POST['userOrEmail'])."' AND uUPass = sha2(concat(dynamSalt, '".mysql_real_escape_string($_POST['userPass'])."'), 512) ")or die(mysql_error());
$NewMerchLoginCheck = mysql_query("SELECT mUsername, mEmail, mUPass, mdynamSalt FROM Merchant WHERE mUsername OR mEmail = '".mysql_real_escape_string($_POST['userOrEmail'])."' AND mUPass = sha2(concat(dynamSalt, '".mysql_real_escape_string($_POST['userPass'])."'), 512) ")or die(mysql_error());
if(mysql_num_rows == 1){
echo "Success";
//then redirect the users homepage
}
else(mysql_num_rows == 0){
echo "Error";
// then redirect to original login form, for relogin
}
Когда выбран переключатель: value="Buyer"
, он должен запускать запрос $NewBuyerLoginCheck
Когда выбран переключатель: value="Merchant"
, он должен запускать запрос $NewMerchLoginCheck
Как мне сделать это на основе переключателя, выбранного при отправке с использованием Ajax?
Комментарии:
1. Я бы подумал об этом, но тогда люди, которые отключают JS, для которых это не сработает. Правильно?
Ответ №1:
html-код, если вы используете jQuery, вы можете сделать это:
<script type="text/javascript" src="jquery-1.4.3.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#NewBuyerRegHp').submit(function() {
$.ajax({
type: 'POST',
url: $(this).attr('action'),
data: $(this).serialize(),
success: function(data) {
$('#ajax').html(data);
}
})
return false;
});
});
</script>
<form id="NewBuyerRegHp" method="post" action="check.php" style="margin:5px 0;">
Buyer <input type="radio" name="addType" value="Buyer" checked="checked" /> <!-- Default value is checked -->
Merchant <input type="radio" name="addType" value="Merchant" /><br />
Username or Email: <input type="text" name="userOrEmail" class="UserLogin" placeholder="Username" /> <br />
Password: <input type="password" name="userPass" class="UserLogin" placeholder="Password" /> <br />
<input type="submit" name="SubmitNewBuyerHp" value="Secure Login" />
</form>
<div id="ajax"></div> <!-- Check return value if using ajax -->
Php-код:
<?php
if (isset($_POST['addType']) amp;amp; isset($_POST['userOrEmail']) amp;amp; isset($_POST['userPass'])){
if($_POST['addType'] == 'Buyer'){
$NewBuyerLoginCheck = mysql_query("SELECT uUName, uEmail, uUPass, dynamSalt FROM User WHERE uUName OR uEmail = '".mysql_real_escape_string($_POST['userOrEmail'])."' AND uUPass = sha2(concat(dynamSalt, '".mysql_real_escape_string($_POST['userPass'])."'), 512) ") or die(mysql_error());
} elseif($_POST['addType'] == 'Merchant'){
$NewMerchLoginCheck = mysql_query("SELECT mUsername, mEmail, mUPass, mdynamSalt FROM Merchant WHERE mUsername OR mEmail = '".mysql_real_escape_string($_POST['userOrEmail'])."' AND mUPass = sha2(concat(dynamSalt, '".mysql_real_escape_string($_POST['userPass'])."'), 512) ") or die(mysql_error());
}
if(mysql_num_rows == 1){
echo "Success";
//then redirect the users homepage
} elseif(mysql_num_rows == 0){
echo "Error";
// then redirect to original login form, for relogin
}
}
?>
Ответ №2:
Используйте этот пример
$('input:radio').click(function(){
if($("input:checked").val() == "Buyer")
{
//ajax call to php file and pass a parameter buyer
}
else{
//ajax call to php file and pass a parameter merchant
}
});
и получает значения post в коде php и в зависимости от переданного параметра выполняет запрос
Комментарии:
1. как бы я передал параметры?
2. //ajax вызывает php-файл и передает параметр buyer $.get(example.php,{param:’Buyer’},function(){ }); для этого используется вызов get, поэтому в вашем php-файле выполните $_GET[‘param’]