ホームページ > バックエンド開発 > PHPチュートリアル > PHPでデータセットを取得した後、JavaScriptを使用する方法を教えてください。

PHPでデータセットを取得した後、JavaScriptを使用する方法を教えてください。

WBOY
リリース: 2016-06-23 13:30:12
オリジナル
975 人が閲覧しました

PHP と HTML を組み合わせたページを練習する場合、PHP はデータベースからデータを取得し、それをループで出力します。リンクされた JavaScript ページは、列の分類に使用される各データに対応する ID 値をどのように取得しますか? getElementById(lanmu).value;

PHP ページ内


アラートは fi のみを表示し、対応する値に ID 値を表示することはできません


ディスカッション (解決策) に返信

ページはまだロードされておらず、dom オブジェクトは初期化されていないため、 document.getElementById (lanmu).value;

ここの lanmu が js 変数ではない場合は、引用符を追加します document.getElementById('lanmu').value


window.load=function(){     var fi= document.getElementById(lanmu).value;}
ログイン後にコピー
ログイン後にコピー


またはそれを使用することをお勧めしますJQuery を使用すると便利です:
<script src="http://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script><script>$(function(){alert( $('#lanmu').val());});</script>
ログイン後にコピー
ログイン後にコピー

またアドバイスをお願いします

JavaScript が document.getElementsById(lanmu).value; を呼び出した後、アラートがまったく応答しません
document.getElementsByName(lanmu)アラートに未定義が表示されます
何が起こっていますか?

ページがまだロードされておらず、DOM オブジェクトが初期化されていないため、 document.getElementById(lanmu).value;

ここで lanmu が js 変数でない場合は、引用符を追加します document.getElementById('lanmu' ).value


window.load=function(){     var fi= document.getElementById(lanmu).value;}
ログイン後にコピー
ログイン後にコピー


を使用することをお勧めします。 または、JQuery を使用する方が便利です:
<script src="http://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script><script>$(function(){alert( $('#lanmu').val());});</script>
ログイン後にコピー
ログイン後にコピー


最初のオプションは問題ありませんが、元の JavaScript コードをすべて jquery に変更する必要がありますか? jqueryを追加し、phpページをクリックすると、その列にid値が表示されます。問題は、id値をjavascriptの変数に変換する方法です
次のように書いてみてください
$(function(){
var fid=$ ('#fi').val();
});

繰り返しプロンプトボックスが表示されますが、実際には fid 変数を使用して URL に入れて送信したいのです

間違っています。それは 2 番目のオプションです

あなたが何をしようとしているのか理解できません

あなたが説明した内容はどれもあなたのコードには存在しません

showtype.php: フォームのフォームを表示するために使用されます






include ('conn/conn.php');
$sqlf ="select * from tb_class where supid=0";//親を選択クラスデータ
$sqlz ="supid!=0 から * を選択"
$shujuf=mysql_query($sqlz);
<script> <br> var fid ="<?php echo $rows1['id'];?>";//fid は changtype.js ファイルに渡されます <br> </script>







?>







}}}
?>

製品カテゴリを表示
;/font> < ;input id="moditype1" name="moditype1" type="text" class="shorttxt" value="" color:#996633 ;" />
>0";
$shujuz=mysql_query($sqlz);
while ($rows2=mysql_fetch_array($shujuz)){
if($ rows2['supid']==$rows1['id']){

?> size="2" color="#996600">サブクラス: /td>


javascript: 使用前の形式を検出するには、xmlhttp の URL を設定して changtype.php に渡します
functionmodifytype(key){
var nm = 'moditype1'

//var fid = document.getElementById(fi).value;/ /この方法 だめ
//var fi='$fi';//これはうまくいきません
//var fid=$('#fi').val();//これはうまくいきません
var names = document.getElementById(nm).value ;


if(names == ""){
warning('カテゴリ名を入力してください')
document.getElementById(nm).focus(); false;
}
var url = "changetype.php ?action=m&names="+names+"&key="+fid;
xmlhttp.onreadystatechange = check; .send(null);
}
function delbigtype( key){

if(confirm("削除したいのは第 1 レベルのクラスですが、削除してもよろしいですか?")){
var url = "changetype.php?action=bd&key="+fid;
xmlhttp.open(" GET",url,true);
xmlhttp.send(null);
return false ;
}
}
function delsmalltype(key){

if(confirm("OK 選択した項目を削除しますか?一度削除すると復元できません!")){
var url = "changetype.php?action=sd&key="+fid;
xmlhttp.open("GET",url,true);
xmlhttp.onreadystatechange = check;
xmlhttp .send(null);
}else{
return false;

関数 check(){
if(xmlhttp.readyState == 4){
if(xmlhttp.status == 200){
var msg = xmlhttp.responseText;
if(msg == "1"){
alerse('重複したクラス名');
}else if(msg == "2"){
alert('操作が失敗しました!' );
}else (msg == "3"){
alert('操作は成功しました');
} else if(msg == "4"){
alert('カテゴリ サブクラスがあるため削除できません');
}else (msg == "0"){
alert('不明なエラー!'+'nエラー コード:'+msg);
列の変更と追加に使用される changtype.php もあります

/***************************************
$reback の説明:
0. 不明なエラー
1. 重複クラス名
2、操作失敗
3. 操作成功
4. 分類には 2 つのレベルがあります
**************************** *********/
$conn=mysql_connect("localhost","root",""); mysql_select_db(" db_database22",$conn);
mysql_query("set names utf8");
$action = $_GET['action'];// JavaScript ファイル内のアクションを取得します
$reback = '';//戻り変数を作成します
if ($action == 'm'){// アクションの値が m?? 列名を変更します
$names = $_GET['names'];
$key = $_GET[' key'];
$sql = "select * from tb_class where name = '$names'";
$rst = $conn->execute($sql);//select データベースを実行
if($rst-> RecordCount() == 1){ //選択が成功した場合
$reback = '1';//戻り値は 1 です
}else{
$updatesql = "select * from tb_class where id = ".$key ;
$updaterst = $conn->execute ($updatesql);
$upd["id"] = $key;
$update = $conn->GetUpdateSQL($updaterst,$upd);//データベースを変更します
if($conn->execute($update) == false){//変更が成功した場合
$reback = '2 ';//戻り値は 2 です
}else{
$reback = '3';//戻り値は 3 です
}
}
}else if($action == 'sd'){/ /アクション値が sd の場合??サブクラス列を削除します
$key = $_GET['key'];
$delsql = "delete from tb_class where id = ".$key;
if($conn->execute( $delsql) == false){
$reback = '2';
}else{
$reback = '3';
}
}else if($action == 'bd'){// bd??親クラス列を削除します
$key = $_GET['key'];
$sql = "select * from tb_class where supid = ".$key;
$rst = $conn->execute; sql);
if($ rst->RecordCount() >= 1){
$reback = '4';
}else{
$delsql = "id = ".$key から削除します。 ($conn->execute ($delsql) == false){
$reback = '2';
}else{
$reback = '3';
}
}
}else{
$reback = '0 ';
}
echo $ reback;
?>

これは基本的に、smarty テンプレート エンジンを使用するように変更したかったのですが、それを直接変更する必要があることがわかりました。うまくいきませんでした。ここでいくつか質問があります:
1. document.getElementById(fi) .value が値を取得できず、変更ボタンをクリックしても応答がありません。入力非表示フィールドに onbur を追加すると、「電子カテゴリ」のデータ テーブル ID が 1 つだけ表示されます。これは、他のフィールドの変更キーをクリックするたびに表示されます。この列は表示されません。その入力の非表示スタイルを非表示に変更すると、すべての列に対応する ID が表示されます。これは、PHP ページが ID を取得したことを意味します。各列の値ですが、JavaScript ページは入力隠しフィールドの値を取得できません。それは の値です。

2. 最初の PHP ファイルでは、親クラスを変更した後、onclick="javascript:modifytype({$key}) であることがわかります。これは何を意味しますか? {$key} はスマート テンプレート変数ですこれはどのように変更すればよいでしょうか?
3. changtype.js の関数 check() が機能しないのはなぜですか?
AJAX+JSON を使用すると非常に便利です。これは直接サポートされています

jquery を使用して値を取得し、それぞれを使用してクエリを実行できます。問題は、特定のボタンをクリックするたびに、プロンプト ボックスが自動的にポップアップし、さまざまな値が表示されることです。ループ。当初は、自動的にプロンプ​​トを表示するのではなく、項目の横にあるキーを押して、対応する値をポップアップさせたかったのですが、その方法がわかりません。 ("input:hidden").each(function(){

alert($(this).val())

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート