トリガーボタンでは動作しません:ブートストラップモーダルは、ライブサーバー
while ($row = mysqli_fetch_array($result)) {
$name = $row['name'];
$id = $row['id'];
echo '<a data-target="#exampleModal" class="wpmui-field-input button wpmui-submit button-primary" data-toggle="modal" data-whatever="'.$name.'">Details</a>';
echo $id . "<br>";
}
モーダル:
echo'
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="exampleModalLabel">New message</h4>
</div>
<div class="modal-body">
<form>
<textarea class="form-control"></textarea>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Send message</button>
</div>
</div>
</div>
</div>';
はJavaScript:
echo'
<script type="text/javascript">
window.onload = function() {
$("#exampleModal").on("show.bs.modal", function (event) {
var button = $(event.relatedTarget) // Button that triggered the modal
var recipient = button.data("whatever") // Extract info from data-* attributes
var modal = $(this)
modal.find(".modal-title").text("New message to " + recipient)
modal.find(".modal-body textarea").val(recipient)
})
}
</script>';
今、私はその上で、これらすべてのコードが生成されます持っていますそのトリガーボタンをクリックするとモーダルボックスが表示されます。このコードはローカルホストで正常に動作しているようですが、サーバで同じ動作をしません。返される値はundefined
です。私のlocalhostはPHP7を持っていて、私のサーバはPHP5を持っているので、今は、PHPバージョンと何か関係があるかもしれないと思います。 PHP5では、<textarea>
タグの値フィールド(JavaScriptは.val()
)をサポートしていません(<textarea value="something">
)?
このような場合でも、この問題の回避策は何ですか?私は.html()
と.text()
を使ってみましたが、値を上書きするだけです。もう一度モーダルボックスを開くと、値はすべてのモーダルボックスで同じになります(受信者モーダルボックスごとに異なる値にする必要があります)。
私は、表示なしとしてPHPよりhtmlでモーダルを書くことをお薦めしました –
私はWordpressのXYZ PHPコードをフィールド内で使用しています。これはphpパラメータ値のみを受け入れるため、エコー ""を使用する必要があります。 –