緊急! ! PHP ページの読み込みの問題が不完全、オンラインなどです。
PHP
RT、同じページが複数回更新されます。正常な場合もあれば、半分しか表示されない場合もあれば、完全に空白の場合もありますページ全体
半分
このマシンのデバッグ時にはこの問題は発生しませんでした。それは外部ネットワーク上で公開されたときに起こりました。ドロップダウン ボックスの内容は、fopen で .tab ファイルを開き、ループを通じて配列に変換し、ループを通じて js 配列に値を代入することで読み取られます。ループは 1000 です。
set_time_limit(60*60*10) の設定はまだ無効です。 。 。
ご指導をお願いします、ありがとうございます。 。 。コードの一部を添付します
common.php<?phppublic static function readTabFile($fileName) { if (!file_exists($fileName)) { die("<b>404 File not found!</b>"); } $handle = fopen($fileName, 'rb'); $contents = fread($handle, filesize ($fileName)); //iconv("UTF-8","GBK", $contents); if(ord($contents) == 0xEF) { $contents = substr($contents, 4); } $rows = explode("\r\n", $contents); fclose($handle); $ret; $colNames = null; for($i = 0; $i < count($rows); $i++) { $row = $rows[$i]; if(!empty($row) && $row != "" && substr($row, 0, 1) != "#") { $col = explode("\t", $row); if(empty($colNames) || $colNames == null) $colNames = $col; else { $item; $itemId = (int)$col[0]; if(empty($itemId)) { die("..."); } for($j = 0; $j < count($col); $j++) { $value = $col[$j]; $item[$colNames[$j]] = $value; } $ret[$itemId] = $item; } } } return $ret; }?>test.php<?php $dir = "../goods.tab"; $table = Common::readTabFile($dir);?><script> var goodsTb = new Array(); <?php foreach($table as $key => $value) { echo "goodsTb[".$value["id"]."]=\"".iconv("GBK","UTF-8", $value["sz_name"])."\";"; } ?> function checkNum(i) { var sle_obj = document.getElementById('valueType' + i); var index = sle_obj.selectedIndex; var valueType = sle_obj.options[index].value; var num_obj = document.getElementById('count' + i); if(valueType == -1) { alert('请选择道具类型!'); } if(num_obj.value > 500) num_obj.value = 500; } var i = 1; function addFile() { var dv = document.getElementById("dvFiles"); var selectObj = document.createElement("select"); selectObj.name = "valueType"; selectObj.id = "valueType" + i; var sg = document.createTextNode("选择道具 "); dv.appendChild(sg); //创建select选项卡 var myOption = document.createElement("option"); myOption.setAttribute("value","-1"); myOption.appendChild(document.createTextNode("无")); selectObj.appendChild(myOption); for (var key in goodsTb) { var op = document.createElement("option"); op.setAttribute("value", key); op.appendChild(document.createTextNode(goodsTb[key])); selectObj.appendChild(op); } dv.appendChild(selectObj);....
ディスカッションへの返信 (解決策)
お願いします |! !
オンラインで待っています、うおおおおおお
大事にしてください
コードが正常であれば正常であると考えられる場合もあります
完全に空白とはどういう意味ですか?ページ全体に一言も書かれていませんか?
これのほとんどはネットワークの問題であり、プログラムのアルゴリズムが複雑すぎてブラウザのタイムアウト範囲内に応答がない場合を除き、コードとは何の関係もありません
単語はなく、ただ空白です。 。 。
アルゴリズムも複雑ではありません。 。 。たった 2 つの 1000 ループです。コードも投稿しました。 。 。
ただし、ネットワークに関連している必要があり、ローカル デバッグは正常です。 。 。
空白の理由は、js内にループがあり、jsの実行が途中で止まっているためです。 。 。解決策を探しています
空白の理由は、js内にループがあり、jsの実行が途中で止まっているためです。 。 。解決策を探しています
それは js のパフォーマンスの問題である可能性があります
たとえば、smarty テンプレートを使用し、配列を表示テンプレートに渡し、HTML を返すようにすることを強くお勧めします。ループで取得するか、フロントエンドに出力します
jsループは使用しないでください
空白になっているのは、js内にループがあり、jsの実行が途中で止まっているためです。 。 。解決策を探しています
それは js のパフォーマンスの問題である可能性があります
たとえば、smarty テンプレートを使用し、配列を表示テンプレートに渡し、HTML を返すようにすることを強くお勧めします。ループで取得するか、フロントエンドに出力する
js ループを使用しないでください
js についてはよくわかりませんが、ff ページの実行ソース コードから判断すると、前のコードがphpで取り出した配列は正しいのですが、jsを出力すると止まってしまいます。
Smarty テンプレートについて学んだことがありません。js に関する解決策はありますか?
空白の理由は、js内にループがあり、jsの実行が途中で止まっているためです。 。 。解決策を探しています
それは js のパフォーマンスの問題である可能性があります
たとえば、smarty テンプレートを使用し、配列を表示テンプレートに渡し、HTML を返すようにすることを強くお勧めします。ループで取得するか、フロントエンドに出力する
js ループを使用しないでください
js についてはよくわかりませんが、ff ページの実行ソース コードから判断すると、前のコードがphpで取り出した配列は正しいのですが、jsを出力すると止まってしまいます。
Smarty テンプレートについて学んだことがありません。JS に解決策はありますか?
JS には解決策と最適化方法が必要だと思います
しかし、ここでは言及できません
ループを実行するために PHP を使用することしか提案できません。
Smarty を理解していない場合でも、問題はありません。php で直接ループし、echo を使用して HTML を記述するだけです
なぜ js を使用してループし結合する必要があるのですか
echo $str; foreach($table as $key => $value) { echo 'var op = document.createElement(\"option\");'; echo 'op.setAttribute(\"value\", "'.$value["id"].'");'; echo 'op.appendChild(document.createTextNode("'.iconv("GBK","UTF-8", $value["sz_name"]).'"));'; echo 'selectObj.appendChild(op)'; } ?>
php を使用するHTMLを出力することはまだ機能しません。 。 。 。 。 。 。 。 。 。 。
PHP を使用して HTML を直接出力することはできませんか...
ページをざっと見たところ、バックグラウンドからデータを取得するための ajax があり、クエリと選択を送信することは完全に可能です。 js コードでなければなりませんか?
最初のもの ドロップダウン ボックスは PHP から直接出力された HTML ですが、追加ボタンがあり、クリックするたびに新しいドロップダウン ボックスが生成されます。 。 。 。現在の追加ボタンはJSで実装されています
追加をクリックすると、propsとitemを選択するドロップダウンボックスが表示されますね
違いがなければ直下にhtmlを挿入してください。前のドロップダウン リストが配置されている div は以上です
最初のドロップダウン ボックスのクラスが abc であり、ドロップダウン ボックスと次の入力ボックスが同じ div の下にあるとします
$(" .abc").parent().after($(".abc") .parent().html());
jquery は一文で実装されています
なんと言いますか? 業務内容が詳しくなるほど、理解できないのでこれ以上は言えません
実際、私が最終的に言いたいのは、それは完全に不要であるということです 複雑な JS ループを使用すると、ページが完全に表示されなくなります 実現するには多くの方法があります。これ
$(".abc").after($(".abc").html ()); 聞いてください、割り当てられたコンテンツの ID と名前を後で変更できますか?
そうですね、jquery を使用するのは非常に簡単です - -
$(" について質問します。 abc").after($(".abc").html()); 後続の割り当ての ID と名前を変更できますか?
もちろん変更できます。これは別の質問です
それはあなた次第です 構造この選択リストの内容と js ファイルの記述方法
たとえば、val="id1234" などの各項目のカスタム属性を定義します
次に、項目を選択するときに、js を使用して選択内容を取得します。この val中央のテキスト説明
は、後続の入力の値に保存されます (jquery セレクターを使用すると非常に便利です)
これは比較的単純な js アプリケーションです
$(".abc").after($(".abc").html()); で割り当てられた ID と名前を変更できるかどうか聞いてもいいですか
もちろん、これは別の質問です
それは、選択リストの構造と js ファイルの記述方法によって異なります
たとえば、各項目にカスタム属性を定義する場合は、次のようにします。 id1234"
次に、項目を選択するときに、js を使用して val と選択範囲の中央のテキスト説明を取得し、それを後続の入力の値に保存します (jquery セレクターを使用すると非常に便利です)
これは、js の比較的単純なアプリケーションです
jquery を使用したことがありません。いくつかの構文を理解するためにドキュメントを参照するだけです。 。 。
私が投稿した最初の写真は、商品を選択した後、数量を入力する必要があるというもので、選択の後にテキストが続きました。
[追加] をクリックした後、$(".abc").after($(". abc").html( )) このメソッドではselectとtextのidが元のものと同じになってしまいます。区別したいです。例えば変数iを使って制御し、iごとに1を加算します。追加した。 。
さらに、追加したい項目の後に削除ボタンを押すと、この項目を削除できます。参考としてコード例を教えてください。ありがとうございます - -
好吧,用jquery真的很简单- -
请问 $(".abc").after($(".abc").html()); 可以修改后面赋值内容的id跟name么
当然可以 这是另一个问题
看你的这个select列表的结构和你js文件的写法了
比如你给每一项定义一个自定义属性比如说叫val="id1234"
然后当你选择某一项时 用js获取选择项的这个val和中间的text描述
然后存入后边的input的value中 (用jquery选择器会很方便)
这是js比较简单的应用了.
jquery没有用过,只是参考文档能了解些语法。。。
我最早贴的图,就是我选择了物品后,需要填写数量,就是一个select跟一个text,
点击添加后,$(".abc").after($(".abc").html())这种方法,会导致select,text的id跟原来的一样,我想区分开来,比如用个变量i控制,每添加一个i就加1.。。
另外我想添加的项后面可以跟个删除按钮,点击删除可以删除本项,麻烦给个代码示例参考下,谢谢- -
抱歉才到家.
写了个简单的demo,只有增加和删除DIV的 选择后写入值的可以去网上搜下相关文章
<!doctype html><html lang="cn"><head> <meta charset="UTF-8"> <title>Document</title> <meta name="Keywords" content="" /> <meta name="Description" content="" /> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> function addDiv(){ var lastHtml = $(".abc:last").clone(); var item_id = $(".abc:last select").attr("id"); var input_id = $(".abc:last input").attr("id"); var new_item_id = "item_" + (parseInt(item_id.substr(5))+1); var new_input_id = "item_num_" + (parseInt(input_id.substr(9))+1); lastHtml.children("select").attr("name",new_item_id); lastHtml.children("select").attr("id",new_item_id); lastHtml.children("input").attr("name",new_input_id); lastHtml.children("input").attr("id",new_input_id); $(".abc:last").after("<div class='abc'>"+lastHtml.html()+"</div>"); } function delDiv(obj){ var i = $(".abc").length; if (i>1) { $(obj).parent(".abc").remove(); }else{ alert("至少选择一项"); } } </script></head><body> <div><!--以后换成form--> <div class="abc"> <select name="item_1" id="item_1" > <option value="0">无</option> <option value="1">剑气火灵幻影</option> <option value="2">神武至尊怒火</option> <option value="3">鬼舞玄冰法杖</option> </select> 数量 <input type="text" name="item_num_1" id="item_num_1" value="" /> <a href="javascript:void(0)" onclick="delDiv(this)">删除</a> </div> <button onClick = "addDiv()">添加</button> </div></body></html>
欢迎继续交流啊
好吧,用jquery真的很简单- -
请问 $(".abc").after($(".abc").html()); 可以修改后面赋值内容的id跟name么
当然可以 这是另一个问题
看你的这个select列表的结构和你js文件的写法了
比如你给每一项定义一个自定义属性比如说叫val="id1234"
然后当你选择某一项时 用js获取选择项的这个val和中间的text描述
然后存入后边的input的value中 (用jquery选择器会很方便)
这是js比较简单的应用了.
jquery没有用过,只是参考文档能了解些语法。。。
我最早贴的图,就是我选择了物品后,需要填写数量,就是一个select跟一个text,
点击添加后,$(".abc").after($(".abc").html())这种方法,会导致select,text的id跟原来的一样,我想区分开来,比如用个变量i控制,每添加一个i就加1.。。
另外我想添加的项后面可以跟个删除按钮,点击删除可以删除本项,麻烦给个代码示例参考下,谢谢- -
抱歉才到家.
写了个简单的demo,只有增加和删除DIV的 选择后写入值的可以去网上搜下相关文章
<!doctype html><html lang="cn"><head> <meta charset="UTF-8"> <title>Document</title> <meta name="Keywords" content="" /> <meta name="Description" content="" /> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> function addDiv(){ var lastHtml = $(".abc:last").clone(); var item_id = $(".abc:last select").attr("id"); var input_id = $(".abc:last input").attr("id"); var new_item_id = "item_" + (parseInt(item_id.substr(5))+1); var new_input_id = "item_num_" + (parseInt(input_id.substr(9))+1); lastHtml.children("select").attr("name",new_item_id); lastHtml.children("select").attr("id",new_item_id); lastHtml.children("input").attr("name",new_input_id); lastHtml.children("input").attr("id",new_input_id); $(".abc:last").after("<div class='abc'>"+lastHtml.html()+"</div>"); } function delDiv(obj){ var i = $(".abc").length; if (i>1) { $(obj).parent(".abc").remove(); }else{ alert("至少选择一项"); } } </script></head><body> <div><!--以后换成form--> <div class="abc"> <select name="item_1" id="item_1" > <option value="0">无</option> <option value="1">剑气火灵幻影</option> <option value="2">神武至尊怒火</option> <option value="3">鬼舞玄冰法杖</option> </select> 数量 <input type="text" name="item_num_1" id="item_num_1" value="" /> <a href="javascript:void(0)" onclick="delDiv(this)">删除</a> </div> <button onClick = "addDiv()">添加</button> </div></body></html>
欢迎继续交流啊 非常感谢,结贴!
交个朋友- -
都是新手 多交流
给你个小思路 看能帮到你不!
test.php<?php $dir = "../goods.tab"; $table = Common::readTabFile($dir); foreach($table as $key => $value) { echo "<option value='{$value["id"]}'>".iconv("GBK","UTF-8", $value["sz_name"])."</option>"; }?>test.html //加载jquery<select id="tools" name="tools[]"></select><a href="javascript:addTools();"></a><script>function autoTools(){ var i=$("#tools").length-1;$.get("test.php",function(data){$("#tools:eq("+i+")").html(data);});}function addTools(){ $("#tools").after("<select id='tools' name='tools[]'></select>").autoTools();}autoTools();</script>
好吧,用jquery真的很简单- -
请问 $(".abc").after($(".abc").html()); 可以修改后面赋值内容的id跟name么
当然可以 这是另一个问题
看你的这个select列表的结构和你js文件的写法了
比如你给每一项定义一个自定义属性比如说叫val="id1234"
然后当你选择某一项时 用js获取选择项的这个val和中间的text描述
然后存入后边的input的value中 (用jquery选择器会很方便)
这是js比较简单的应用了.
jquery没有用过,只是参考文档能了解些语法。。。
我最早贴的图,就是我选择了物品后,需要填写数量,就是一个select跟一个text,
点击添加后,$(".abc").after($(".abc").html())这种方法,会导致select,text的id跟原来的一样,我想区分开来,比如用个变量i控制,每添加一个i就加1.。。
另外我想添加的项后面可以跟个删除按钮,点击删除可以删除本项,麻烦给个代码示例参考下,谢谢- -
抱歉才到家.
写了个简单的demo,只有增加和删除DIV的 选择后写入值的可以去网上搜下相关文章
<!doctype html><html lang="cn"><head> <meta charset="UTF-8"> <title>Document</title> <meta name="Keywords" content="" /> <meta name="Description" content="" /> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> function addDiv(){ var lastHtml = $(".abc:last").clone(); var item_id = $(".abc:last select").attr("id"); var input_id = $(".abc:last input").attr("id"); var new_item_id = "item_" + (parseInt(item_id.substr(5))+1); var new_input_id = "item_num_" + (parseInt(input_id.substr(9))+1); lastHtml.children("select").attr("name",new_item_id); lastHtml.children("select").attr("id",new_item_id); lastHtml.children("input").attr("name",new_input_id); lastHtml.children("input").attr("id",new_input_id); $(".abc:last").after("<div class='abc'>"+lastHtml.html()+"</div>"); } function delDiv(obj){ var i = $(".abc").length; if (i>1) { $(obj).parent(".abc").remove(); }else{ alert("至少选择一项"); } } </script></head><body> <div><!--以后换成form--> <div class="abc"> <select name="item_1" id="item_1" > <option value="0">无</option> <option value="1">剑气火灵幻影</option> <option value="2">神武至尊怒火</option> <option value="3">鬼舞玄冰法杖</option> </select> 数量 <input type="text" name="item_num_1" id="item_num_1" value="" /> <a href="javascript:void(0)" onclick="delDiv(this)">删除</a> </div> <button onClick = "addDiv()">添加</button> </div></body></html>
欢迎继续交流啊 非常感谢,结贴!
交个朋友- - 哥们在吗?问个问题
ページをざっと見たところ、バックグラウンドからデータを取得するために ajax があり、クエリと選択を送信することは完全に可能です。行は js コードでなければなりませんか?
まず、ドロップダウン ボックスは php によって直接出力された html ですが、追加ボタンがあり、クリックするたびに新しいドロップダウン ボックスが生成されます。 。 。 。現在の追加ボタンはJSで実装されています
追加をクリックすると、propsとitemを選択するドロップダウンボックスが表示されますね
違いがなければ直下にhtmlを挿入してください。前のドロップダウン リストが配置されている div は以上です
最初のドロップダウン ボックスのクラスが abc であり、ドロップダウン ボックスと次の入力ボックスが同じ div の下にあると仮定します
$(" .abc").parent().after($(".abc") .parent().html());
jquery は一文で実装されています
なんと言いますか? 業務内容が詳しくなるほど、理解できないので、ここではこれ以上は言えません
実際、私が最終的に言いたいのは、それはまったく不要であるということです 複雑な JS ループを使用すると、ページが不完全に表示されます これを実現するには、さまざまな方法があります。 。 。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

Laravelのサービスコンテナとサービスプロバイダーは、そのアーキテクチャの基本です。 この記事では、サービスコンテナ、詳細サービスプロバイダーの作成、登録、および実用的な使用法を例で説明します。 Oveから始めます

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。
