я предлагаю вам использовать phpmyadmin.
вам нужно выполнить шаги:
]
, которые все видят в действии на youtube [ нажмите здесь ]
, если вы хотите узнать больше о phpMyadmin , идите с официальным
, но если есть какая-либо особая причина, чтобы сделать это с php, здесь приведена оценка sql
CREATE USER 'tesrytss'@'%'//user name
IDENTIFIED VIA mysql_native_password USING '***';.//set pass
GRANT SELECT, INSERT, UPDATE, DELETE, FILE ON *.* TO 'tesrytss'@'%' // previlages and username and location
REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0; //other requerment
К сожалению, назначение innerHTML
вызывает уничтожение всех дочерних элементов, даже если вы пытаетесь добавить. Если вы хотите сохранить дочерние узлы (и их обработчики событий), вам нужно будет использовать функции DOM :
function start() {
var myspan = document.getElementById("myspan");
myspan.onclick = function() { alert ("hi"); };
var mydiv = document.getElementById("mydiv");
mydiv.appendChild(document.createTextNode("bar"));
}
Изменить: решение Боба из комментариев. Отправьте свой ответ, Боб! Получите кредит на это. : -)
function start() {
var myspan = document.getElementById("myspan");
myspan.onclick = function() { alert ("hi"); };
var mydiv = document.getElementById("mydiv");
var newcontent = document.createElement('div');
newcontent.innerHTML = "bar";
while (newcontent.firstChild) {
mydiv.appendChild(newcontent.firstChild);
}
}
Как небольшой (но связанный) asside, если вы используете javascript-библиотеку, такую как jquery (v1.3), чтобы выполнять манипуляции с dom, вы можете использовать живые события, в которых вы настраиваете обработчик наподобие:
$("#myspan").live("click", function(){
alert('hi');
});
, и он будет применяться к этому селектору в любое время при любых манипуляциях с jquery. Для живых событий см.: docs.jquery.com/events/live для манипуляции jquery см.: docs.jquery.com/manipulation
Я создал свою разметку для вставки в виде строки, поскольку она меньше кода и ее легче читать, чем работать с файлом fancy dom.
Затем я сделал это innerHTML временного элемента, чтобы я мог взять один и единственный ребенок этого элемента и прикрепляется к телу.
var html = '<div>';
html += 'Hello div!';
html += '</div>';
var tempElement = document.createElement('div');
tempElement.innerHTML = html;
document.getElementsByTagName('body')[0].appendChild(tempElement.firstChild);
Теперь это 2012 год, и у jQuery есть функции добавления и добавления, которые делают именно это, добавляют контент, не влияя на текущий контент. Очень полезно.
Использование .insertAdjacentHTML()
сохраняет прослушиватели событий, а поддерживается всеми основными браузерами . Это простая однострочная замена для .innerHTML
.
var html_to_insert = "<p>New paragraph</p>";
// with .innerHTML, destroys event listeners
document.getElementById('mydiv').innerHTML += html_to_insert;
// with .insertAdjacentHTML, preserves event listeners
document.getElementById('mydiv').insertAdjacentHTML('beforeend', html_to_insert);
Аргумент 'beforeend'
указывает, где в элементе для вставки содержимого HTML. Опции: 'beforebegin'
, 'afterbegin'
, 'beforeend'
и 'afterend'
. Их соответствующие местоположения:
<!-- beforebegin -->
<div id="mydiv">
<!-- afterbegin -->
<p>Existing content in #mydiv</p>
<!-- beforeend -->
</div>
<!-- afterend -->
Существует другая альтернатива: использование setAttribute
вместо добавления прослушивателя событий. Например:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Demo innerHTML and event listeners</title>
<style>
div {
border: 1px solid black;
padding: 10px;
}
</style>
</head>
<body>
<div>
<span>Click here.</span>
</div>
<script>
document.querySelector('span').setAttribute("onclick","alert('Hi.')");
document.querySelector('div').innerHTML += ' Added text.';
</script>
</body>
</html>
Вы можете сделать это следующим образом:
var anchors = document.getElementsByTagName('a');
var index_a = 0;
var uls = document.getElementsByTagName('UL');
window.onload=function() {alert(anchors.length);};
for(var i=0 ; i<uls.length; i++)
{
lis = uls[i].getElementsByTagName('LI');
for(var j=0 ;j<lis.length;j++)
{
var first = lis[j].innerHTML;
string = "<img src=\"http://g.etfv.co/" + anchors[index_a++] +
"\" width=\"32\"
height=\"32\" /> " + first;
lis[j].innerHTML = string;
}
}
something.innerHTML + = 'добавить все, что вам нужно,
, это сработало для меня. Я добавил кнопку для ввода текста, используя это решение
Я ленивый программист. Я не использую DOM, потому что это похоже на дополнительную типизацию. Для меня, чем меньше код, тем лучше. Вот как я добавил бы «bar» без замены «foo»:
function start(){
var innermyspan = document.getElementById("myspan").innerHTML;
document.getElementById("myspan").innerHTML=innermyspan+"bar";
}
Потеря обработчиков событий, IMO, ошибка в том, как Javascript обрабатывает DOM. Чтобы избежать такого поведения, вы можете добавить следующее:
function start () {
myspan = document.getElementById("myspan");
myspan.onclick = function() { alert ("hi"); };
mydiv = document.getElementById("mydiv");
clickHandler = mydiv.onclick; // add
mydiv.innerHTML += "bar";
mydiv.onclick = clickHandler; // add
}
mydiv.onclick
. Только параметр onclick для внутреннего диапазона переопределяется innerHTML +=
.
– Crescent Fresh
27 February 2009 в 21:35