問題は、jQueryのajax機能を使用してデータベースクエリの複数のシナリオの結果を返す方法を理解することです。jQueryのajaxとデータベースクエリを複数回使用する
function checkDB(code)
{
$.ajax({
type: "POST",
url: "<?php bloginfo('template_url'); ?>/profile/check_code.php",
data: 'code='+code,
datatype: "html",
success: function(result){
if(result == 0)
{
$('#success').html(code + ' already exists.');
// alert('success');//testing purposes
}
else
{
$('#err').html( code + ' isnt in the database!!.');
//alert('fail');//testing purposes
}
alert(result);
}
})
}
そして、これが提出する上で機能を実行するには、次のフォームを使用しています:
<form method="post" name="sc_ajax" onsubmit="checkDB(document.sc_ajax.sc_voucher_code.value); return false;">
...
</form>
実行される。ここ
は、私が持っているコードは...これはAjaxの機能で、これまでですcheck_code.phpのデータベースクエリ:
$code = mysql_real_escape_string($_POST['code']);
$resultcode = mysql_query('select * from wp_scloyalty where code = "'. $code .'"') or die(mysql_error());
if(mysql_num_rows($resultcode)>0){
//Exists
echo 0;
}else{
//Doesnt Exist
echo 1;
}
私はこれまでのところ、入力されたコードがデータベースに存在します。
私の質問は、私がどのように質問をしていくかについてです。たとえば、データベースの列をさらにテストするために、より多くの "if文"が必要ですか?私は "コードがすでにデータベースに入っている場合、 'redeemed'カラムが1(デフォルト0)に設定されている場合、何か違うことをしますか?
現在、私はajaxの応答から関数(結果)に基づいて出力することしかできませんが、これまでよりも効率的な方法がありますか?または、現在の設定をより柔軟にするためのより効率的な方法ですか?
長い質問のビットは、申し訳ありませんが、私は私が片付けいくつかのことを必要と感じ、
みんなありがとう:)
あなたはより多くを行うには、あなたのDBの結果に基づいて、より実行するPHPコード、またはJavaScriptコードをしたいですか? –
これは私が確信していることです...私はajaxを使用して他の人々のアプローチのために見回してきました。私はちょうど1つのPHPファイルを使用してif文を実行して数値を返し、その番号。これは、Ajaxを使用したクエリからのデータを処理するための最も良い/最も一般的なアプローチですか? – JamesG
私はそれがあなたのアプリが何をしたいかによって決まると思います。あなたが持っているものは、コードが存在するかどうかを見て、完全に合理的な試みです。たとえば、PHPの拡張モジュールは、データベース内のコードを見つけると、列の値を出力することができます。 –