2010-11-28 9 views
0

GETまたはPOSTまたはREQUESTを使用せずにhtmlテキストフィールドの値を取得する方法はありますか?別の方法として、フィールド値を同じフォームまたはページに取得する方法はありますか。PHP Javascript変数ヘルプ

"james"、 "system"などの直接値で動作します。

<input type = "submit" onclick = " 
<?php $username = "kut"; 
$result = checkname($username); 
if($result) 
{ 
?> alert("success"); <?php 
} 
else {?> alert("failed"); <?php 
}?> 
"> 

がどのように私にid =「ユーザ名」を持つテキストフィールドの値を持つ「KUT」を置き換えることができます。唯一の問題は、私はそれがHTMLフィールド値

などで動作させる行う方法ですか?

<?php $username = "?>document.getElementById('username').value;<?php"?> 

またはそのようなもの... ???私が提案する

要するに

、I)は上記javascriptFunction(のように... PHPを使用して、JavaScript関数内の同じページ内の他のHTMLフィールドの値を取得する必要があり、機能

+2

あなたのサーバーは、GETやPOST(または動詞)がない限り、何も実行していません...ここで何をしようとしていますか? –

+1

送信する前にテキストフィールドの値を確認しようとしていますか?あなたはajax呼び出しをしようとしているように聞こえます。 – kjy112

+0

これは... JavaScriptを使用してPHP経由でデータベースにアクセスし、値が存在するかどうかをチェックし、その結果をJavaScriptに送り返したいとします。右? – JAL

答えて

0

1> jQueryを使用してAjaxの部分を処理します。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script> 
    function check_user(){ 
     var user_el=document.getElementById('username'); 
     if(!user_el){ return false; } 
     var username=user_el.value; // this could all be replaced with $('username').val() 
     $.getJSON('check_var.php',{"user":username},function(data){ 
      if(data.result=='error'){ alert('something was wrong with the PHP stuff'); } 
      alert(data.userstatus); 
      }); 
     } 
</script> 

2> PHP側では、check_var.phpとして、ユーザー名の入力を受け取り、スクリプトを必要とする、DBをチェックし、JSONデータとして結果を送り返します。

<?php 
if(!isset($_GET['user']){ exit; } 

$username=preg_replace('#['^\w\d]#','',$_POST['user']); 

//do your database query. I assume you have that part all set. 
//since I'm not filling in all of that, you'll need to fix this next part to work with your system 
//let's pretend it's like $found=check_user($username); 
//be sure to use mysql_real_escape_string or prepared statements on the $username var since you're working with user input 

$status=$some_db_error ? 'error' : 'success'; 

$results=array('result'=>$status,'userstatus'=>$found); 
header('Content-Type: application/json'); 
echo json_encode($results); 
+0

@ ALEX JL:DBコード全体を準備しましたが、編集した質問でタスクを実行する必要があります。 – Kut

+0

@ ALEX JL:編集した質問のタスクは、 "james"、 "system"などの直接値で動作します。唯一の問題は、どうすればhtmlで動作するのですかフィールド値 – Kut

+0

私はあなたが何を意味するかは分かりません。ユーザーが入力したような、ページがロードされたときに準備ができていない値を処理したい場合、ページをリロードする必要がない場合は、Ajaxを使用する必要があります。 – JAL

1

JavaScriptで直接PHP関数を呼び出すことはできません。あなたはecho経由でページが読み込まれる前に、PHPからJavaScript値を設定することができます。 PHPはサーバー上で実行され、JavaScriptはクライアント側で実行されます。

2

あなたは、クライアントとサーバーのアーキテクチャがどのように機能するかについて基本的な誤解があります。

JavaScriptは、JavaScriptが実行されている場所から何千マイルも離れていても、離れていても実行できます。

最初にPHPはHTML全体、すべてのJavaScriptソースコード(未実行)を生成し、PHPが終了してブラウザがJavaScriptを実行した後に生成します。

PHPソースコードのように見えるかもしれませんが、これらの2つを必要に応じて混在させることはできません。

AJAXなどを使用してサーバーと再度通信することはできますが、まずクライアントとサーバーのアーキテクチャの仕組みを理解し、AJAXなしで問題を解決する必要があります(たとえば、サーバー側ですべてを処理するか、側)。